C++类组合

类中的成员数据是另一个类的对象。

可以在已有抽象的基础上实现更复杂的抽象。

类组合的构造函数设计

原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对对象成员初始化。

声明形式:

类名::类名(对象成员所需的形参,本类成员形参)        

:对象1(参数),对象2(参数),......

{  本类初始化  }

构造函数调用顺序:先调用内嵌对象的构造函数(按内嵌时的声明顺序,先声明者先构造)。然后调用本类的构造函数。(析构函数的调用顺序相反)

初始化列表中未出现的内嵌对象,用默认构造函数(即无形参的)初始化

系统自动生成的隐含的默认构造函数中,内嵌对象全部用默认构造函数初始化

例:

class Part { //部件类
public:
  Part();
  Part(int i);
  ~Part();
  void Print();
private:
  int val;
};
class Whole {
public:
  Whole();
  Whole(int i, int j, int k);
  ~Whole();
  void Print();
private:
  Part one;
  Part two;
  int date;
};
Whole::Whole() {
  date=0;
}
Whole::Whole(int i, int j, int k)
          : two(i), one(j), date(k)
{}

//...其他函数的实现略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值