[英]single object accessing two functions in c++
这段代码在做什么?
SNMP_Sequence trapseq = trap.GetPDU().GetVarBindList();
据我所知,一个对象一次只能引用一个成员函数。 这是怎么回事 trap.GetPDU().GetVarBindList()
trap.GetPDU()
返回一个对象,并GetVarBindList()
对象调用GetVarBindList()
。
trap.GetPDU().GetVarBindList()
等效于:
obj.GetVarBindList()
其中obj
是trap.GetPDU()
返回的对象
这也称为方法链接 。
它检索GetPDU
返回的对象(或引用),然后在其上调用GetVarBindList
。
等效于:
SomeObject &PDU = trap.GetPDU();
SNMP_Sequence trapseq = PDU.GetVarBindList();
如果该表达式具有适当的类型,则在任何表达式的结果上调用成员函数是完全合法的,包括对该另一个成员的访问。
std::vector<std::vector<std::vector<std::string>>> super_jaggy;
// insert stuff here
std::cout << super_jaggy.front().front().front().size(); // legal
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.