#include <iostream> #include <vector> using namespace std; //指针间接引用运算符一定是一个成员函数。它有着额外的,非典型的限制:它必须返回一个对象(或引用),该对象也有一个指针间接引用运算符 class Ob { public: void h() { cout << "4556" << endl; } }; class Obj { Ob k; public: Ob* operator->() { return &k; } }; class ObjContainer { Obj a; public: Obj operator->() const { return a; } }; void main() { ObjContainer sp; sp->h(); } ///:~ //////////////////////////// #include <iostream> #include <vector> using namespace std; //指针间接引用运算符一定是一个成员函数。它有着额外的,非典型的限制:它必须返回一个对象(或引用),该对象也有一个指针间接引用运算符 class Ob { public: void h() { cout << "4556" << endl; } }; class Obj { Ob k; public: Ob* operator->() { return &k; } }; class ObjContainer { Obj a; public: Obj& operator->() { return a; } }; void main() { ObjContainer sp; sp->h(); } ///:~///:~ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include <iostream> #include <vector> using namespace std; //或者必须返回一个指针,被用于选择指针间接引用运算符箭头所指向的内容。 class Obj { public: void h() { cout << "4556" << endl; } }; class ObjContainer { Obj a; public: Obj* operator->() { return &a; } }; void main() { ObjContainer sp; sp->h(); } ///:~ /////////////////////////////////// #include <iostream> #include <vector> using namespace std; //或者必须返回一个指针,被用于选择指针间接引用运算符箭头所指向的内容。 class Obj { public: void h() { cout << "4556" << endl; } }; class ObjContainer { Obj *point; public: Obj* operator->() { return point; } }; void main() { ObjContainer sp; sp->h(); } ////////////////////////////////////////////////////////////////////////////////////////