class Animal {
public: virtualconstchar * talk() = 0; // Pure virtual function
};
class Cat : public Animal {
public: constchar * talk() {return"Meow!";}
};
class Dog : public Animal {
public: constchar * talk() {return"Woof!";}
};
void main()
{
Animal * random;
if (GetTickCount() % 2 == 0) {
random = new Cat();
} else {
random = new Dog();
}
printf(random->talk());
}
果物(りんご、梨)の次は、猫、犬、動物。oopについて語られているときの想像力のなさはひどいものです。(cyclops993、あなたのことではなく、wikipediaのことです。) どの本当のプログラムが、メソッド "talk "を持つクラス "animal "を必要とするのでしょう。早速、「取引」の例を掲載します。
やや完成度の高いサンプルスクリプト。
今まで気づかなかったのは、基底クラスへの参照がある場合、ボディを持たない仮想関数を 持つことはできないようです。上の例では、次のようなことができない。
...一方、C++では以下のようなことができます。
クラス cat とクラス dog は動物のサブクラスですか? dog クラスに別のサブクラスを作成し、クラス pitbull と呼ぶことは可能ですか?
なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど。
なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど、なるほど。
例えば
...ピットブルは猫や他の犬のように話せるだけでなく、物事を威嚇することができます。