学生(ID-924616):
老师,这是上课时的一段代码
#include
using namespace std;
// 品种
enum BREED {GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB};
class A
{
};
class Employee
{
//可以写很多代码,几百行,几千行: 都是类的成员
private:
//
public:
//
};
class Manager : public Employee, public A
{
//继承了基类的私有成员,但是不能用!
};
class Animal
{
public:
Animal():itsAge(2),itsWeight(5){}
~Animal(){}
int GetAge() const { return itsAge; }
void SetAge(int age) { itsAge = age; }
int GetWeight() const { return itsWeight; }
void SetWeight(int weight) { itsWeight = weight; }
void Speak() const { cout <
void Sleep() const { cout <
protected:
int itsAge;
int itsWeight;
};
class Dog : public Animal
{
public:
Dog():itsBreed(GOLDEN){}
~Dog(){}
BREED GetBreed() const { return itsBreed; }
void SetBreed(BREED breed) { itsBreed = breed; }
void WagTail() const { cout <
void BegForFood() const { cout <
protected:
BREED itsBreed;
};
int main()
{
cout <
Dog a;
a.Speak();
a.WagTail();
cout <
return 0;
}
输出的狗a的年龄是2,是从Animal():itsAge(2),itsWeight(5){}这里得到的;
可是这个是Animal的构造函数的初始化列表,继承不是不能继承构造函数和析构函数吗??这里是怎么回事??
help i cheated on my boyfriend i dreamed i cheated on my boyfriend how to cheat on boyfriend
吴老师:
C++会自动在构造函数里调用父类的构造函数
int main()
{
cout <
Dog a; //
// Dog()构造函数会自动调用父类的构造函数Animal(),
// Animal():itsAge(2),itsWeight(5),这里年龄被初始为2
// 要创建小子,必须要先创建老子,因为小子继承了老子,没有老子也就没有小子
// C++会自动在构造函数里调用父类的构造函数
a.Speak();
a.WagTail();
cout <
return 0;
}