私は仮想関数を理解しようとしていました。
次のコードを検討してください。
#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
出力を取得する必要がありました
I eat like a generic animal.
I eat like a generic animal.
ここに欠けている初歩的なものはありますか?
Linuxでg++コンパイラを使用しています