多继承时的构造函数
来源:互联网 发布:数据段字节变量 编辑:程序博客网 时间:2024/06/16 12:42
多继承时的构造函数
格式:
派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1(参数), 基类名2(参数), ...基类名n(参数)
{
本类成员初始化赋值语句;
};
派生类与基类的构造函数
1.当基类中声明有缺省形式的构造函数或未声明构造函数时,派生类构造函数的声明中可以省略对基类构造函数的调用。
若基类中未声明构造函数,派生类中也可以不声明,全采用缺省形式构造函数。
当基类声明有带形参的构造函数时,派生类也应声明带形参的构造函数,提供将参数传递给基类构造函数的途径。
举例:
#include <iostream>
using namespace std;
class B1 //基类B1,构造函数有参数
{public:
B1(int i) {cout<<"constructing B1 "<<i<<endl;}
};
class B2 //基类B2,构造函数有参数
{public:
B2(int j) {cout<<"constructing B2 "<<j<<endl;}
};
class B3 //基类B3,构造函数无参数
{public:
B3(){cout<<"constructing B3 *"<<endl;}
};
class C: public B2, public B1, public B3
{
public: //派生类的公有成员
C(int a, int b, int c, int d):
B1(a),memberB2(d),memberB1(c),B2(b)
{}
private: //派生类的私有对象成员
B1 memberB1;
B2 memberB2;
B3 memberB3;
};
int main()
{
C obj(1,2,3,4);
return 0;
}
答案:
constructing B2 2
constructing B1 1
constructing B3 *
constructing B1 3 这次构造是由于创造了对象,B1 memberB1
constructing B2 4 这次构造是由于创造了对象, B2 memberB2
constructing B3 * 这次构造是由于创造了对象, B3 memberB3
格式:
派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1(参数), 基类名2(参数), ...基类名n(参数)
{
本类成员初始化赋值语句;
};
派生类与基类的构造函数
1.当基类中声明有缺省形式的构造函数或未声明构造函数时,派生类构造函数的声明中可以省略对基类构造函数的调用。
若基类中未声明构造函数,派生类中也可以不声明,全采用缺省形式构造函数。
当基类声明有带形参的构造函数时,派生类也应声明带形参的构造函数,提供将参数传递给基类构造函数的途径。
举例:
#include <iostream>
using namespace std;
class B1 //基类B1,构造函数有参数
{public:
B1(int i) {cout<<"constructing B1 "<<i<<endl;}
};
class B2 //基类B2,构造函数有参数
{public:
B2(int j) {cout<<"constructing B2 "<<j<<endl;}
};
class B3 //基类B3,构造函数无参数
{public:
B3(){cout<<"constructing B3 *"<<endl;}
};
class C: public B2, public B1, public B3
{
public: //派生类的公有成员
C(int a, int b, int c, int d):
B1(a),memberB2(d),memberB1(c),B2(b)
{}
private: //派生类的私有对象成员
B1 memberB1;
B2 memberB2;
B3 memberB3;
};
int main()
{
C obj(1,2,3,4);
return 0;
}
答案:
constructing B2 2
constructing B1 1
constructing B3 *
constructing B1 3 这次构造是由于创造了对象,B1 memberB1
constructing B2 4 这次构造是由于创造了对象, B2 memberB2
constructing B3 * 这次构造是由于创造了对象, B3 memberB3
- 多继承时的构造函数
- 构造函数的继承
- 继承的构造函数
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- 多继承时的构造函数调用的顺序
- 多继承中的构造函数的顺序
- Java继承时构造函数的调用
- Java继承时构造函数的调用
- Java继承时构造函数的调用
- c++继承时的构造函数
- 继承时类的构造函数?
- Java继承时构造函数的关系
- C++ 继承时的构造函数
- C++虚继承时的构造函数
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++ 按关键字搜索文件夹中的文件 & 全盘符搜索文件
- WCF中通过配置文件来创建启动服务
- linux tar 加压、压缩命令详解
- Linux常用命令功能集
- Oracle分页查询中排序与效率问题
- 多继承时的构造函数
- 第十四周项目三:CSolid类
- 软件开发中的“宫心斗”
- iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
- MCMC-蒙特卡洛算法
- linux下socket通信,server和client简单例子(一)
- 巴什博弈
- DNS工作原理初探
- mysql数据库操作