我可以在运行时获取对象的名称(比如通过RTTI获取对象的类型)吗?我希望对象能够打印其名称.
谢谢.
由于C++中的对象没有任何名称,因此无法获取它们.识别对象的唯一方法是它的地址.
否则,您可以实现命名方案(这意味着对象将具有一些char*
或std::string
成员的名称).您可以使用QObject层次结构在Qt中激发自己,QObject层次结构使用类似的方法.
这是不可能的.对于on thing,对象没有唯一的名称.
A a; A& ar = a; // both a and ar refer to the same object new A; // the object created doesn't have a name A* ap = new A[100]; // either all 100 objects share the same name, or need to // know that they are part of an array.
最好的办法是在对象构造函数中添加一个字符串参数,并在创建时为其命名.