我是一名有用的助手,可以为您翻译文本。
我正在尝试理解虚函数。
考虑以下代码:
使用
我正在尝试理解虚函数。
考虑以下代码:
#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++编译器。