首页 > 代码库 > 基类和派生类

基类和派生类

1. 基类构造函数负责初始化继承的数据成员,派生类构造函数主要用于初始化新增的数据成员。

2.C++要求引用和指针类型与赋值的类型匹配,但是这一规则对继承来说例外。不过这种例外只是单向的,不可以将基类对象和地址赋给派生类引用和指针。

class TableTennisPlayer

{

  private:

   ....

   public:

  ....

}

class RatedPlayer: public TableTennisPlayer

{

    private:

   ...

    public:

  ...

}

可以:

RatedPlayer rplayer(1140,"Malloy","Duck");

TableTennisPlayer & rp=rplayer;

or:

TableTennisPlayer * rp=&rplayer;

不可以:

TableTennisPlay tplayer("","",true);

RatedPlayer & rp=tplayer;

RatedPlayer * rp=tplayer;

3.成员初始化列表

例如:(由逗号分隔初始化列表,前面带冒号)

Queue:: Queue(int qs): qsize(qs), front(NULL), real(NULL), item(0)

{

}

注意

1.只有构造函数可以使用这种初始化列表句法。

2.对于const类成员,必须使用这种句法,上面例子中,之前我们在Queue类中私有成员中定义了: const int qsize;

3. 对于被申明引用的类成员,必须使用这种句法:

class Agency{...};

class Agent

{

    private:

    Agency & belong; //引用类型为Agency, 

}

cpp:(对构造函数进行初始化)

Agent::Agent(Agency &a ) : belong(a);// 将belong初始化为a,必须采用成员初始化列表。