Przykład polimorfizmu działającego ze strukturą danych w C ++ na podstawie przykładu php
Uczę się polimorfizmu i znam php.
Natknąłem się na ten doskonały przykładhttps://stackoverflow.com/a/749738/80353. przedstawione poniżej.
Jak napisać ten sam kod, ale w C ++?
Mam problem z samodzielnym napisaniem, ponieważ uważam (może się mylę), że struktury danych w C ++ są surowe.
Musisz mieć wszystkie elementy wewnątrz listy połączonej lub tablicy w C ++ tego samego typu.
Uważam więc, że musisz przechowywać kota i psa jako ich klasę bazową w strukturze danych.
Jak więc napisać ten fragment kodu php do fragmentu kodu C ++, który używa ścisłej struktury danych, aby mógł przechowywać tylko elementy jednego typu danych?
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>';
}