c++ 如何访问结构变量的值而不调用成员之前的变量名?

kokeuurv  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(117)

如何在结构成员中使用结构变量值,而不调用结构变量名称,而只使用该结构的成员和全局变量(字符串)?其思想是,我将全局变量值设置为结构变量名称,然后在该变量后执行.structM,类似于:global.structM,其中global是全局变量。
我试过这个:

#include <iostream>

using namespace std;
string global = "structV";
struct{
  int structM;
}structV;
int main() {
  structV.structM = 100;
  cout << structV.structM << endl << endl;
  cout << global.structM << endl << endl;
  
}

但是解决方法当然不会那么简单。cout << global.value << endl << endl;出现了一个错误。我最初认为也许,只是也许,它会工作。我的希望很低,果然,它没有工作。它只是说有,no member named "structM" in std::basic_string<char>。那么,有办法解决这个问题吗?

wz3gfoph

wz3gfoph1#

C++不是这样工作的。类型是在运行时定义的。它们不能在以后重新分配。
您可以使用指向struct成员的指针,但此处的类型必须在编译时已知,并且不可交换。
你不能通过存储在另一个变量中的名称间接访问一个变量。并且动态地改变它。
你可以用Map和指针之类的东西来建立工作区。
但目前还不清楚你想达到什么目的。听起来像是X-Y-Problem
职训局

d6kp6zgx

d6kp6zgx2#

我建议仔细研究一下这个外部资源,我相信它很好地解释了如何使用结构体以及最初可以做什么。
带示例的C++结构

相关问题