- 必须定义为类成员函数
- 不接受显示形参,必须返回指向类类型指针或定义了箭头操作符的类类型对象
- 可以使当前类对象调用其他类中的成员(如智能指针)
#include <iostream> #include <vector> using namespace std; class Dog{ public: static int i; static int j; void fun2() { cout << i << endl; cout << j << endl; } }; int Dog::i = 0; int Dog::j = 1; class Cat { public: Dog dog1; Dog* operator->() { return &dog1; } }; int main(int argc, char const *argv[]) { /* code */ Dog dog; dog.fun2(); Cat cat; //通过重载运算符'->',可以使当前类对象调用其他类中的成员,暂时不清楚更大的作用。 cat->i = 10; (cat.operator->())->j = 20; cat.dog1.fun2(); return 0; } 打印结果: 0 1 10 20