我试图理解虚函数。
考虑以下代码,
#include <iostream>
#include <memory>
#include <vector>
class Animal
{
public:
virtual void eat()
{
std::cout << "I eat like a generic animal.\n";
}
};
class Wolf : public Animal
{
public:
void eat()
{
std::cout << "I eat like a wolf!\n";
}
};
int main()
{
Animal a;
Wolf w;
a.eat();
w.eat();
}
使用virtual
关键字我得到输出
I eat like a generic animal.
I eat like a wolf!
正如它应该。
但是如果我删除 virtual 关键字,我仍然会得到相同的输出!从我对虚函数的基本理解来看,没有virtual
我应该得到输出
I eat like a generic animal.
I eat like a generic animal.
我缺少什么基本的东西吗?
我在 Linux 上使用 g++ 编译器