&这个实例化类的地址?

时间:2011-04-18 23:04:11

标签: c++

我的目标是编写一个函数,该函数返回调用它的实例化类的地址。

我最初的猜测是

返回&这个

但这并没有产生任何好结果。

非常感谢任何和所有建议!谢谢!

2 个答案:

答案 0 :(得分:8)

简单地return this将从该对象中返回对象的地址。

答案 1 :(得分:1)

这是一个指针。你不想要这个指针的地址,你想要这个。

请注意,在虚拟继承(虚基类,多继承)下,this指针可能始终不相同(它将取决于它指向特定时间点的继承图中的位置)。

确实存在定义良好的转换(dynamic_cast),因此没有无法解决的问题,只是说你不应该盲目相信

MultiplyDerived* d = &someInstance;
Base* b = d;

bool test = ((void*) b) == ((void*) d);

test不一定是真的(我认为它甚至是依赖于编译器的,即具体实现的时候会发生什么)。