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;
}
};
不應該是''哺乳動物*哺乳動物=新貓();' –
禁用多態類的拷貝構造函數和賦值操作符可以幫助防止這些錯誤。 –