这次还是CSDN上的帖子的问题:
重载operator&之后
重载operator&之后
一个类A重载了operator&,然后对于它的一个对象aaa,&aaa就成了去调用这个成员函数了。但现在我想取aaa的地址,自么办?
另:这个类我没办法修改。
我的做法是: 中间层
template<typename T>
T* GetPoint(T& t)
{
class Point: public T
{
int tt;
T* GetAddress(T* t)
{
return t;
}
public:
T* operator&()
{
return GetAddress(this);
};
};
return (static_cast<Point&>(t)).operator&();
};
我对C++标准不是很熟悉,不知道T* GetAddress(T* t)能否正确的将this转成T*而做到和编译器无关?我觉得应该是。
如果你有什么好的做法,告诉我知道,拜托了.

浙公网安备 33010602011771号