我一直在尝试获取代码以识别变体类型的外部向量。它可以编译,但是当我尝试使用向量中的数据时,它仅显示为默认构造的定义。
标题中:
extern class Register R0;
extern class Register R1;
xtern class Register R2;
extern class Register R3;
extern class Register R4;
extern class SP R5;
extern std::vector<std::variant<Register, SP>> R; //there are actually 4 types
class Register
{
public:
unsigned short data;
Register::Register();
virtual ~Register() {};
}
class SP : public Register
{
public:
SP(unsigned short x);
unsigned char pull();
void push(unsigned char to_push);
};
在.cpp中:
Register::Register() {
data = 0;
}
SP::SP(unsigned short x) {
data = x;
}
Register R0;
Register R1;
Register R2;
Register R3;
Register R4;
SP R5(VALUE);
std::vector<std::variant<Register, SP>> R = {R0,R1,R2,R3,R4,R5};
我在Main中所做的一切都没有将这些值从零更改,并且我无法访问SP的任何派生方法/字段
感谢所有帮助