使用已有类编写新的类有两种方式: 继承和组合
继承关系也称为 “is a” 或 “是” 关系
组合关系也称为 “has a” 或 “有” 关系
如果一个类的成员变量是另一个类的对象,则为封闭类
定义封闭类构造函数的一般形式为:
类名: :类名(形参表) : 内对象1 (形参表),内对象2 (形参表),~
{类体}
*在派生类也是封闭类的情况下,构造函数的初始化列表不但要指明基类对象的初始化方式,还要指明成员的初始化方式。
生成派生类对象时,会引发一系列构造函数的调用,顺序是: 先根据派生类层次从上到下依次执行所有基类的构造函数,最后执行自身的构造函数。如果某个类是封闭类,则在执行本类构造函数之前,先按照成员对象的定义顺序执行各个成员对象所属类的构造函数。
【示例】
#include
#include
using namespace std;
classmyDate
{
public:
myDate();
myDate(int);
myDate(int,int);
myDate(int,int,int);
myDate(const myDate &d) ;
~myDate();
void setDate(int,int,int);
void setDate(myDate);
myDate getDate();
void setYear(int);
int getMonth();
void printDate() const;
private:
int year,month ,day;
};
myDate::myDate ()
{
year=1970;
month=1;
day=1;
cout<<"myDate默认构