老师,这是上课时的一段代码
#include <iostream>
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 << "Animal sound!\n"; }
void Sleep() const { cout << "shhh. I'm sleeping.\n"; }
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 << "Tail wagging...\n"; }
void BegForFood() const { cout << "Begging for food...\n";}
protected:
BREED itsBreed;
};
int main()
{
cout << "开始测试..." << endl;
Dog a;
a.Speak();
a.WagTail();
cout << a.GetAge() << " years old" << endl;
return 0;
}
输出的狗a的年龄是2,是从Animal():itsAge(2),itsWeight(5){}这里得到的;
可是这个是Animal的构造函数的初始化列表,继承不是不能继承构造函数和析构函数吗??这里是怎么回事??