访问具有变量的结构成员

时间:2018-02-16 09:59:58

标签: c++ struct

有结构

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

如果没有,有任何方法可以使用指针。

1 个答案:

答案 0 :(得分:4)

除非您在程序中为对象映射提供运行时std::string,否则无法执行此操作。 C ++没有内置的任何运行时反射,可以让你这样做。

另一种方法是使用指针来引用现有变量和数据成员。 E.g。

auto object = &p1;
auto member = &Person::name;

std::cout << object->*member << '\n'; // prints "alice"

live example on wandbox