0
为什么哺乳动物speak
方法被调用?虚拟方法未被覆盖?
int main() {
Mammal mammal = Cat("CatName", Blue, 9);
mammal.speak();
}
class Mammal : public Animal{
public:
virtual void speak() const {
cout << "Mammal speaks" << endl;
}
};
class Cat : public Mammal {
public:
void speak() const {
cout << "Cat meow!" << endl;
}
};
不应该是''哺乳动物*哺乳动物=新猫();' –
禁用多态类的拷贝构造函数和赋值操作符可以帮助防止这些错误。 –