小学校园网站建设,工具网,优跃达官网网站建设项目,怎么建立博客网站一、重载成员访问运算符#xff08;-#xff09; 重载的成员访问运算符#xff08;函数#xff09;必须返回类对象指针或自定义了箭头运算符的类的对象。c 中形如 obj-member() 的表达式#xff0c;则obj是一个对象指针或者重载了箭头运算…一、重载成员访问运算符- 重载的成员访问运算符函数必须返回类对象指针或自定义了箭头运算符的类的对象。c 中形如 obj-member() 的表达式则obj是一个对象指针或者重载了箭头运算符的类的对象。
obj 为内置的指针类型对象指针直接进行调用即上述表达式等价为(*obj).member()obj 为重载了箭头运算符的类的对象如果 obj.operator-() 的结果是内置指针则进行内置指针调用反之obj.operator-() 的结果是另一个对象则对新对象进行operator-() 调用直到某一次调用operator()-的结果为能作用到member()的指针为止然后用该指针调用member()。 #include iostream
#include stringclass A {
public:std::string* operator-() {return _str;}private:std::string _str;
};class B {
public:A operator-() {return _a_obj;}private:A _a_obj;
};class C {
public:B operator-() {return _b_obj;}private:B _b_obj;
};int main() {C c_obj;c_obj-size();return 0;
}