如何在结构成员中使用结构变量值,而不调用结构变量名称,而只使用该结构的成员和全局变量(字符串)?其思想是,我将全局变量值设置为结构变量名称,然后在该变量后执行.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>
。那么,有办法解决这个问题吗?
2条答案
按热度按时间wz3gfoph1#
C++不是这样工作的。类型是在运行时定义的。它们不能在以后重新分配。
您可以使用指向
struct
成员的指针,但此处的类型必须在编译时已知,并且不可交换。你不能通过存储在另一个变量中的名称间接访问一个变量。并且动态地改变它。
你可以用Map和指针之类的东西来建立工作区。
但目前还不清楚你想达到什么目的。听起来像是X-Y-Problem。
职训局
d6kp6zgx2#
我建议仔细研究一下这个外部资源,我相信它很好地解释了如何使用结构体以及最初可以做什么。
带示例的C++结构