小编Hen*_*nry的帖子

我如何制作虚拟变量?

我知道有虚函数,但没有虚变量。没有添加它可能是因为大部分时间不需要它,但我最近遇到了一个问题:

class A
{
public:
    int bar;
};

class B : public A
{
public:
    float foo;
};

class C : public A
{
public:
    double foo;
};

int main()
{
    std::vector<A*> v;
    v.push_back(new B());
    v.push_back(new C());

    std::cout << v[1]->bar << v[0]->foo; //error because it will not find 'foo' in A
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以阻止这个错误吗?

c++

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

标签 统计

c++ ×1