は、ここで私が今まで聞いた多型の最良の説明です。それらのほとんどは、いくつかの音を作る:
class Animal
{
public:
virtual void throwAgainstWall() { };
};
class Cat : public Animal
{
public:
void throwAgainstWall(){ cout << "MEOW!" << endl; }
};
class Cow : public Animal
{
public:
void throwAgainstWall(){ cout << "MOOO!" << endl; }
};
は今、あなたは動物と巨大な袋を持っており、あなたがそれらを見ることができない想像してみてください。あなたはそれらの1つをつかみ、それを壁に投げる。そして、あなたはその音を聞く - それはだった動物の種類を示しています:壁にそれを投げる、あなたが最初の動物をつかむ
set<Animal*> bagWithAnimals;
bagWithAnimals.insert(new Cat);
bagWithAnimals.insert(new Cow);
Animal* someAnimal = *(bagWithAnimals.begin());
someAnimal->throwAgainstWall();
someAnimal = *(bagWithAnimals.rbegin());
someAnimal->throwAgainstWall();
、あなたは「MEOW!」を聞きます - うん、それは猫だった。それから、あなたは次のものをつかんで、それを投げると、あなたは "MOOO!" - それは牛だった。それは多型です。
あなたはまた、Polymorphism in c++
をチェックする必要がありますそして、あなたは良い本を探している場合は、ここでは「日の良いリストです:The Definitive C++ Book Guide and List
[C++帳リスト]を参照してください(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – MSalters
この本を見てみるhttp://stackoverflow.com/questions/388242/the-definitive-c-book-guide -and-list – Damian