вторник, 19 октября 2010 г.

21. Объясните принцип полиморфизма.

Неинтересный вопрос. В том смысле, что в двух словах не рассказать, а расписывать подробно не хочу. О полиморфизме и так много информации в книгах и интернете. Понравилось в Википедии: Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». И от себя неплохой, как мне кажется, примерчик.
class Animal{
public:
virtual string voice() = 0;
};

class Cat: public Animal {
public:
string voice(){return "Мяу!";}
};

class Dog: public Animal {
public:
string voice(){return "Гав!";}
};

void printVoice(Animal* animal){
cout << animal->voice(); //Здесь происходит полиморфизм.
}

int main()
{
Animal* animal1 = new Cat;
Animal* animal2 = new Dog;

printVoice(animal1);
printVoice(animal2);

delete animal1;
delete animal2;
}

Комментариев нет:

Отправить комментарий

Можно использовать теги <b>, <i>