Пример работы полиморфизма со структурой данных в C ++ на примере php
Я изучаю полиморфизм, и я знаком с php.
Я наткнулся на этот отличный пример изhttps://stackoverflow.com/a/749738/80353, воспроизведено ниже.
Как мне написать тот же код, но на C ++?
У меня проблемы с написанием этого документа, потому что я верю (я могу ошибаться), что структуры данных в C ++ строги.
Вы должны иметь все элементы внутри связного списка или массива в C ++ одного типа.
Поэтому я считаю, что вам нужно хранить кошку и собаку как их базовый класс в структуре данных.
Итак, как мне записать этот фрагмент кода php в фрагмент кода C ++, который использует строгую структуру данных, в которой он может хранить только элементы одного типа данных?
class Animal {
var $name;
function __construct($name) {
$this->name = $name;
}
}
class Dog extends Animal {
function speak() {
return "Woof, woof!";
}
}
class Cat extends Animal {
function speak() {
return "Meow...";
}
}
$animals = array(new Dog('Skip'), new Cat('Snowball'));
foreach($animals as $animal) {
print $animal->name . " says: " . $animal->speak() . '<br>';
}