【发布时间】:2018-12-23 02:09:42
【问题描述】:
我正在尝试建立一个练习 c++ 和 oop 的动物园。我做了 2 个类,Animal 类(基类)和 Bear 类(派生类)。我想在 Animal 中有 2 个虚函数,我将在 Bear 中覆盖它们,但 CLION 告诉我“Function Walk 没有在 Bear 类中清除”。
我需要改变什么?
这是基类(动物)头:
class Animal {
public:
Animal();
Animal(string Name, int CageNum, string FoodType, string Gender, bool NeedTreatment);
virtual void Talk() = 0;
virtual void Walk();
int CageNum;
string FoodType;
string Gender;
bool NeedTreatment;
string Name;
};
CPP:
Animal::Animal() {};
Animal::Animal(string Name, int CageNum, string FoodType, string Gender, bool NeedTreatment) :
Name(Name), CageNum(CageNum), FoodType(FoodType), Gender(Gender), NeedTreatment(NeedTreatment){};
这是派生类(Bear)头:
#include "Animal.h"
class Bear : public Animal{
protected:
string FurColor;
public:
Bear(string Name, int CageNum, string FoodType, string Gender, bool NeedTreatment,string FurColor);
};
这就是 CPP:
#include "Bear.h"
Bear::Bear(string Name, int CageNum, string FoodType, string Gender, bool NeedTreatment,string FurColor) :
Animal(Name, CageNum, FoodType, Gender, NeedTreatment),FurColor(FurColor) {};
void Bear::Walk() {
cout << "Bear Moves";
}
void Animal::Talk() {
"Bear Noise";
}
【问题讨论】:
-
真正的错误信息是什么?
标签: c++ class oop inheritance virtual