运算符重载,对象和指向对象的指针
直接上code
#include <iostream> using 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才真正的调用了 运算符的重载函数。