C++ 具有变量的访问结构成员

C++ 具有变量的访问结构成员,c++,struct,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"; 现在我可以使用变量:name和item获得p1.name的值了吗 如果没有,就没有办法使用指针获取 除非在程序中提供运行时std::string到对象的映

有一个结构

struct Person{
int age;
string name;
string sex;
};

struct Person p1={23,"alice","male"};
通常,我们使用p1.age或p1.name访问该值 但我想使用变量访问

string name="p1";
string item="name";
现在我可以使用变量:name和item获得p1.name的值了吗


如果没有,就没有办法使用指针获取

除非在程序中提供运行时
std::string
到对象的映射,否则无法执行此操作。C++没有内置的运行时反射,允许你这样做。 另一种方法是使用指针引用现有变量和数据成员。例如

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

std::cout << object->*member << '\n'; // prints "alice"
auto对象=&p1;
自动成员=&个人::名称;

std::cout*member除非在程序中提供运行时
std::string
到对象的映射,否则无法执行此操作。C++没有内置的运行时反射,允许你这样做。 另一种方法是使用指针引用现有变量和数据成员。例如

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

std::cout << object->*member << '\n'; // prints "alice"
auto对象=&p1;
自动成员=&个人::名称;

std::cout*成员您希望通过此解决什么问题?用例是什么?你的问题是一个典型的问题,你要求帮助解决一个(对我们来说)未知的问题。也许还有其他方法可以解决您的问题?在这个结构中定义了许多结构和成员。以泛型方式获取结构的特定成员的值。(不使用if..else或switch直接将所需键映射到p1.name)要使用通用函数实现。访问名为
p1
的实例的名为
name
的成员的“通用方式”是
p1.name
…但这些p1和name是由一些变量给定的。。。对于不同的情况,它们会有所不同。您需要向我们展示您的用例。这听起来确实像一个XY问题。你想用这个来解决什么问题?用例是什么?你的问题是一个典型的问题,你要求帮助解决一个(对我们来说)未知的问题。也许还有其他方法可以解决您的问题?在这个结构中定义了许多结构和成员。以泛型方式获取结构的特定成员的值。(不使用if..else或switch直接将所需键映射到p1.name)要使用通用函数实现。访问名为
p1
的实例的名为
name
的成员的“通用方式”是
p1.name
…但这些p1和name是由一些变量给定的。。。对于不同的情况,它们会有所不同。您需要向我们展示您的用例。这听起来确实像是XY问题。你能提供如何在运行中实现的示例吗time@VSK这是所有的运行时。如果你能解释一下为什么你认为你需要这样的东西,那会很有帮助。你能提供一个例子说明如何在运行中实现吗time@VSK这是所有的运行时。如果你能解释一下为什么你认为你需要这样的东西,那会很有帮助