我想知道,我们是否有可能在C ++中使用“this”指针获取当前对象名称。
提前感谢您的帮助。
答案 0 :(得分:3)
你可能意味着:
Myclass obj;
然后你想知道对象的名称是obj
,你想通过this
答案是:
你不能。 C ++中没有可用的反射。
答案 1 :(得分:2)
让我们假设有一个函数getName()
返回了对象的“名称”。您对以下代码的结果是什么?
struct Object {
Object() { getName(); }
void getName() { cout << getName(this) << endl; }
};
int main() {
new Object;
}
或者这个怎么样?
int main() {
Object o;
Object& r = o;
r.getName(); //should it print `r` or `o`?
}
简而言之:不,当然不是。
答案 2 :(得分:1)
是的,就像这样:
#include <iostream>
#include <typeinfo>
struct C
{
C(){
std::cout<<typeid(*this).name()<<std::endl;
}
};
int main() {
C c;
}