여기에 내가 들어 다형성의 최선의 설명이다. 대부분은 약간의 소리를 낸다 :
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; }
};
이제 동물과 함께 거대한 가방을 가지고 있고 그것을 볼 수 없다고 상상해 보라. 당신은 그 중 하나를 잡고 벽에 던지십시오. 그럼 당신은 그 소리를들을 - 그것이 어떤 종류의 동물을 설명한다 :
이
set<Animal*> bagWithAnimals;
bagWithAnimals.insert(new Cat);
bagWithAnimals.insert(new Cow);
Animal* someAnimal = *(bagWithAnimals.begin());
someAnimal->throwAgainstWall();
someAnimal = *(bagWithAnimals.rbegin());
someAnimal->throwAgainstWall();
당신은 먼저 동물을 잡아 벽에 던져, 당신이 듣고 "야옹!" - 그래, 고양이 야. 그럼 당신은 다음 하나를 잡아, 당신은 그것을 던져, 당신은 "MOOO!" - 그게 암소 야. 그것은 다형성입니다.
또한 Polymorphism in c++
를 확인해야합니다 그리고 당신은 좋은 책을 찾고 있다면, 여기에 EM의 좋은 목록입니다 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