问题描述
C ++ /编译器如何在下面的代码中知道何时执行正确的代码?以及如何存储(在幕后)?我的向量包含Base*
,但是某处必须有一些额外的信息,对吧?
compiling code与此相同:
class Base {
public:
Base()=default;
virtual void DerivedOrBase() { std::cout << "Base\n"; }
};
class Derived : public Base {
public:
Derived()=default;
void DerivedOrBase() override { std::cout << "Derived\n"; }
};
int main()
{
std::vector<Base*> myVector;
myVector.push_back(new Base());
myVector.push_back(new Base());
myVector.push_back(new Base());
myVector.push_back(new Derived());
for(auto p : myVector) p->DerivedOrBase();
return 0;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)