【发布时间】:2021-08-06 08:24:28
【问题描述】:
假设我有一个这样的字符串数组:
string registers[2] = {"r0","r1"}
还有这样的结构:
struct cpu {
int r1;
}
我尝试过这样的事情:
cpu *p = (cpu*)malloc(sizeof(cpu));
cout << p->registers[1] << endl;
但这给出了编译错误。如何实现?
编辑:问题描述
我需要使用索引访问 cpu 类的成员,所以我想我可以将成员的名称放在一个数组中,然后使用索引获取成员的名称
【问题讨论】:
-
您可以使用
int r[2];而不是int r1;,这可能会使拥有寄存器数组变得更容易。 -
如果您在运行时绝对需要通过字符串名称访问成员,请考虑使用包含成员指针的
std::(unordered_)map作为映射元素类型。 -
描述你的功能需求可能比粗略地勾画你的方法更好。你的设计有很多缺陷,很难猜出real problem是什么。
-
@JaMiT 我需要使用索引访问 cpu 类的成员,所以我想我可以将成员的名称放在一个数组中,然后使用索引获取成员的名称
-
@LipunPanda 但是你的
cpu班级只有一个成员......当只有一个成员时决定访问哪一个成员有多难?也许你过度简化了你的例子?