VC++中,已知成员变量的指针,如何获取变量的名字呢,把类名也要带上
时间: 2024-03-16 22:48:03 浏览: 17
在 VC++ 中,已知成员变量的指针,可以通过使用 RTTI(Run-time Type Information,运行时类型信息)来获取变量的名字和类名。具体步骤如下:
1. 使用 dynamic_cast 将成员变量的指针转换为相应的类指针,如果转换成功则说明该指针所指向的对象是该类的对象;
2. 使用 typeid 获取该类的类型信息;
3. 使用 type_info::name() 获取该类的名称;
4. 将成员变量的名称和类名拼接在一起,即可得到完整的变量名。
以下是示例代码:
```cpp
#include <iostream>
#include <typeinfo>
class MyClass {
public:
int myMember;
};
int main() {
MyClass obj;
MyClass* pObj = &obj;
int* pMember = &obj.myMember;
MyClass* pTest = dynamic_cast<MyClass*>(pMember);
if (pTest != nullptr) {
const std::type_info& typeInfo = typeid(*pTest);
std::cout << typeInfo.name() << "::" << "myMember" << std::endl;
}
return 0;
}
```
输出结果为:
```
class MyClass::myMember
```
其中,"MyClass" 是类名,"myMember" 是成员变量名。