直接上code
#includeusing namespace std;class test{ public: int a; test() : a(0){} test &operator*(){ cout << "operator*" << endl; cout << a << endl; return *this; }};int main(){ test *t; t = new test; test t2 = *t; t->a += 1; // t2.a += 1; *t = *t2; *t; // 这一行 *t2; // **t; // 注意*t 和 **t这两个的差别 return 0;}
运行结果:
t是指向test对象的指针,(*t) 也就是一个test对象。
所以只有 **t才真正的调用了 *运算符的重载函数。