下载此文档

多继承时的构造函数.ppt


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
多继承时的构造函数
派生类名::派生类名(基类1的形参, 基类2的形参, ... , 基类n的形参, 本类形参) : 基类名1(基类1的形参), 基类名2(基类2的形参), ... , 基类名n(基类n的形参)
{
本类成员初始化赋值语句;
}
多继承时的构造函数
1
派生类与基类的构造函数
当基类中声明有默认形式的构造函数或未声明构造函数时,派生类构造函数可以不向基类构造函数传递参数。
若基类中未声明构造函数,派生类中也可以不声明,全采用缺省形式构造函数。
当基类声明有带形参的构造函数时,派生类也应声明带形参的构造函数,并将参数传递给基类构造函数。
多继承时的构造函数
2
多继承且有内嵌对象时的构造函数
派生类名::派生类名(基类1的形参, 基类2的形参, ... , 基类n的形参, 本类形参) : 基类名1(基类1的形参), 基类名2(基类2的形参), ... , 基类名n(基类n的形参), 对象数据成员的初始化
{
本类非对象数据成员的初始化语句;
}
多继承时的构造函数
3
构造函数的调用次序
,调用顺序按照它们被继承时声明的顺序(从左向右)。
,调用顺序按照它们在类中声明的顺序。

多继承时的构造函数
4
拷贝构造函数
若建立派生类对象时调用缺省拷贝构造函数,则编译器将自动调用基类的缺省拷贝构造函数。
若编写派生类的拷贝构造函数,则需要为基类相应的拷贝构造函数传递参数。
例如:
C::C(C &c1) : B(c1)
{…}
多继承时的构造函数
5
例7-5 派生类构造函数举例
#include <iostream>
using namespace std;
class B1 { // 基类B1,构造函数有参数
public:
B1(int i) {
cout << "constructing B1 " << i << endl;
}
};
6
class B2 { // 基类B2,构造函数有参数
public:
B2(int j) {
cout << "constructing B2 " << j << endl; }
};
class B3 { // 基类B3,构造函数无参数
public:
B3( ) {
cout << "constructing B3 *" << endl; }
};
7
class C: public B2, public B1, public B3 {
public: // 派生类的公有成员
C(int a, int b, int c, int d): B1(a),
mB2(d), mB1(c), B2(b) { }
private: // 派生类的私有对象成员
B1 mB1;
B2 mB2;
B3 mB3;
};
void main()
{ C obj(1, 2, 3, 4); }
8
void main( ) {
C obj(1, 2, 3, 4);
}
运行结果:
constructing B2 2
constructing B1 1
constructing B3 *
constructing B1 3
constructing B2 4
constructing B3 *
9
继承时的析构函数
析构函数也不被继承,需在派生类中自行声明
声明方法与一般(无继承关系时)类的析构函数相同。
不需要显式地调用基类的析构函数,系统会自动隐式调用。
析构函数的调用次序与构造函数严格相反。
多继承时的析构函数
10

多继承时的构造函数 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小167 KB
  • 时间2017-12-15