Beispiel eines Polymorphismus, der mit einer Datenstruktur in C ++ basierend auf einem PHP-Beispiel arbeitet

Ich lerne Polymorphismus und bin mit PHP vertraut.

Ich bin auf dieses hervorragende Beispiel von gestoßenhttps://stackoverflow.com/a/749738/80353. unten wiedergegeben.

Wie schreibe ich den gleichen Code, aber in C ++?

Ich habe ein Problem, es selbst zu schreiben, weil ich glaube (ich kann mich irren), dass die Datenstrukturen in C ++ streng sind.

Sie müssen alle Elemente in einer verknüpften Liste oder einem Array in C ++ desselben Typs haben.

Deshalb glaube ich, dass Sie Katze und Hund als Basisklasse in der Datenstruktur speichern müssen.

Wie schreibe ich dieses PHP-Code-Snippet in ein C ++ - Code-Snippet, das eine strikte Datenstruktur verwendet, in der nur Elemente eines Datentyps gespeichert werden können?

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>';
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage