声明变体类型的外部向量

时间:2018-07-06 22:58:17

标签: c++

我一直在尝试获取代码以识别变体类型的外部向量。它可以编译,但是当我尝试使用向量中的数据时,它仅显示为默认构造的定义。

标题中:

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的任何派生方法/字段

感谢所有帮助

0 个答案:

没有答案