我们可以使用“this”指针获取对象名称

时间:2011-11-15 07:04:12

标签: c++

我想知道,我们是否有可能在C ++中使用“this”指针获取当前对象名称。

提前感谢您的帮助。

3 个答案:

答案 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;
}