我正在学习多态,我熟悉php。
我从https://stackoverflow.com/a/749738/80353遇到了这个很好的例子。转载如下。
我如何编写相同的代码,但使用 C++?
我自己编写时遇到问题,因为我相信(我可能错了)C++ 中的数据结构是严格的。
您必须具有相同类型的 C++ 中的链表或数组中的所有元素。
所以我相信你需要将猫和狗作为它们的基类存储到数据结构中。
那么如何将这个 php 代码片段写入使用严格数据结构的 C++ 代码片段,它只能存储 1 种数据类型的元素?
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>';
}