Пример работы полиморфизма со структурой данных в 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>';
}

Ответы на вопрос(3)

Ваш ответ на вопрос