小编Bin*_*Boo的帖子

C++ 联合结构体的调用函数

我有嵌套结构,其中基类有一个纯虚函数。

(下面的例子有点伪,但描述了目的)

struct Base {
    int id=0;
    virtual std::wstring toString() = 0;
}
    
struct Top1 : public Base {
    id=1;
    int val = 5;
    std::wstring toString() { return L"need to use string stream. id="+id+" val="+val; }
}
    
struct Top2 : public Base {
    id=2;
    std::string val = "Hello!";
    std::wstring toString() { return L"need to use string stream. id="+id+" val="+val; }
}
Run Code Online (Sandbox Code Playgroud)

我希望为所有不同类型创建一个表,所以我创建了这个:

struct BaseFootprint{
    union{
        Top1 top1;
        Top2 top2;
    }
    
    std::vector<BaseFootprint> data;
Run Code Online (Sandbox Code Playgroud)

通过以下方式调用该函数不起作用:

for(int i=0;i<data.size;i++){
    std::cwout <<data[i].toString()<< std::endl;;
}
Run Code Online (Sandbox Code Playgroud)

我努力了: …

c++ virtual struct unions

1
推荐指数
1
解决办法
128
查看次数

标签 统计

c++ ×1

struct ×1

unions ×1

virtual ×1