我知道有虚函数,但没有虚变量。没有添加它可能是因为大部分时间不需要它,但我最近遇到了一个问题:
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++ ×1