C++重载取地址运算符(&)后,如何获取对象指针
重载取地址运算符,如下
class testClass
{
public:
int* operator&()
{
return &b;
}
private:
int a;
int b;
}
此时对于如下代码
int main()
{
testClass tc;
cout << &tc << endl;
return 0;
}
输出的是tc.b的地址,如果要获取tc的地址,则应该使用如下方式。
int main(int argc, char const *argv[])
{
testClass tc;
cout << addressof(tc) << endl;
return 0;
}