单个对象访问c++中的两个函数
single object accessing two functions in c++
这段代码在做什么?
SNMP_Sequence trapseq = trap.GetPDU().GetVarBindList();
据我所知,一个对象一次只能引用一个成员函数。这里发生了什么?trap.GetPDU().GetVarBindList()
trap.GetPDU()
返回一个对象,并对该对象调用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
相关文章:
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 两个函数模板候选项.将一个参数作为引用后,选择不太专业的模板
- 如何比较两个函数的速度和性能
- 如何在构造器的成员初始值设定项列表中调用两个函数?
- 如何将这两个函数组合成一个实现?
- 将具有相反操作数的两个函数重构为一个
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 具有相同主体的两个函数具有不同的名称
- 通过作为类的公共成员的两个函数将函数作为参数传递
- 如何使用排序和比较这两个函数在 c++ 中对字符数组进行排序?
- 是否可以在C++中将两个函数一起添加
- C++ 两个函数除了一行之外执行相同的操作
- 如何编写连接两个函数的函数
- 如何执行两个函数参数具有相同的模板类型
- 当两个函数位于一行中时,堆栈框架的样子
- 为什么这两个函数的行为不同
- 为什么当我有两个函数时编译器没有显示错误,一个将采用基类,一个将派生类作为参数
- 系统堆栈中的两个函数的递归调用(将不同数量的数组作为参数传递)有什么区别
- 如何在一个构造函数中使用两个可变参数模板参数来绑定两个函数
- 如何在c++中的两个函数中传递对象的同一实例