вторник, 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>