私はポリモーフィズムを学んでおり、php に精通しています。
https://stackoverflow.com/a/749738/80353からこの優れた例に出くわしました。以下に再掲。
同じコードを C++ で書くにはどうすればよいですか?
C++ のデータ構造は厳密であると私は信じているので (私が間違っているかもしれません)、自分で書くのに問題があります。
同じ型の C++ のリンク リストまたは配列内のすべての要素が必要です。
したがって、猫と犬を基本クラスとしてデータ構造に格納する必要があると思います。
では、この php コード スニペットを、1 つのデータ型の要素しか格納できない厳密なデータ構造を使用する 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>';
}