我的目标是编写一个函数,该函数返回调用它的实例化类的地址。
我最初的猜测是
返回&这个
但这并没有产生任何好结果。
非常感谢任何和所有建议!谢谢!
答案 0 :(得分:8)
简单地return this
将从该对象中返回对象的地址。
答案 1 :(得分:1)
这是一个指针。你不想要这个指针的地址,你想要这个。
请注意,在虚拟继承(虚基类,多继承)下,this指针可能始终不相同(它将取决于它指向特定时间点的继承图中的位置)。
确实存在定义良好的转换(dynamic_cast),因此没有无法解决的问题,只是说你不应该盲目相信
MultiplyDerived* d = &someInstance;
Base* b = d;
bool test = ((void*) b) == ((void*) d);
test
不一定是真的(我认为它甚至是依赖于编译器的,即具体实现的时候会发生什么)。