有结构
struct Person{
int age;
string name;
string sex;
};
struct Person p1={23,"alice","male"};
通常我们使用p1.age或p1.name访问该值 但我想使用变量访问。
string name="p1";
string item="name";
现在我可以使用变量获取p1.name的值:name和item
如果没有,有任何方法可以使用指针。
答案 0 :(得分:4)
除非您在程序中为对象映射提供运行时std::string
,否则无法执行此操作。 C ++没有内置的任何运行时反射,可以让你这样做。
另一种方法是使用指针来引用现有变量和数据成员。 E.g。
auto object = &p1;
auto member = &Person::name;
std::cout << object->*member << '\n'; // prints "alice"