派生类的构造函数与释放函数 类层次结构中数据成员的存储 派生类中构造函数/释放函数的定义与调用 派生类对象的创建
派生类的构造函数与释放函数 ❖ 类层次结构中数据成员的存储 ❖ 派生类中构造函数/释放函数的定义与调用 ❖ 派生类对象的创建
类层次结构中数据成员的存储 Location— point- -circle类层次结构中数据成 员的存储 mX POS mx POS mX POS mY Pos mY Pos mY pos mvisib visibl le le mRadiu
类层次结构中数据成员的存储 ❖ Location—Point—Circle类层次结构中数据成 员的存储 mX_Pos mY_Pos mX_Pos mY_Pos mVisib le mX_Pos mY_Pos mVisib le mRadiu s
构造函数/释放函数的定义与调用 首先通过派生类的构造函数调用基类的构造 函数,对基类成员进行初始化 然后再执行对在派生类中新增的成员进行初 始化的操作 令因此可以说,派生类对象是由其所有先辈类 共同创建的
构造函数/释放函数的定义与调用 ❖ 首先通过派生类的构造函数调用基类的构造 函数,对基类成员进行初始化 ❖ 然后再执行对在派生类中新增的成员进行初 始化的操作 ❖ 因此可以说,派生类对象是由其所有先辈类 共同创建的
派生类的构造函数原型格式 Y:Y(arqX1, argX2,…,argY1,argY2,…)x (arqx1, argx2,…) 其中,Ⅹ为Y的直接基类名,Y为派生类名。 这一格式是递归的
派生类的构造函数原型格式 Y::Y(argX1,argX2,…,argY1,argY2,…):X (argX1,argX2,…) ❖ 其中,X为Y的直接基类名,Y为派生类名。 这一格式是递归的
类层次结构 Location - -Point--Circle 中的构造函数 Location Location( int x, int y mX Pos mY Pos=y Point: Point( int x, int y): Location(x, y) ∥先调用基类构造函数 visible= FALSE. ∥缺省情况下是不可见的 Circle : Circle( int x, int y, int r): Point(x, y) ∥先调用基类构造函数 rAdius =r
类层次结构Location—Point—Circle 中的构造函数 Location :: Location ( int x, int y) { mX_Pos = x; mY_Pos = y; } Point :: Point ( int x, int y ) : Location ( x, y) // 先调用基类构造函数 { visible = FALSE; // 缺省情况下是不可见的 } Circle :: Circle ( int x, int y, int r ) : Point ( x, y ) // 先调用基类构造函数 { mRadius = r; }