成员初始化列表
来源:互联网 发布:淘宝客垃圾 编辑:程序博客网 时间:2024/06/04 20:12
定义一个类Person:
Class Person{public: Person():name(NULL){} Person(const char*str,,const double*pd,int n):name(str),scores(pd,n){}private: string name; valarray<double> scores;}
1.对于基本类型数据成员
Derived::Derived(int a):member(a){...}
使用的是派生类数据成员的名称(member)。
2.对于继承对象
Derived::Derived(const Derived& a):Base(a){...}
对于继承的对象,构造函数在成员初始化列表中使用类名来调用特定的基类构造函数。
3.对于成员对象
Person(const char*str,,const double*pd,int n):name(str),scores(pd,n){}
name为Person的string类型成员对象(string类型的一个实例)。因为该构造函数初始化的是成员对象,而不是继承的对象,所以在初始化列表中使用的是成员名(是name而不是string),而不是类名。初始化列表的的每一项都调用与之匹配的构造函数,即name(str)调用构造函数string(const char*),scores(pd,n)调用构造函数valarray<double>(const double *,int)。
C++要求在构建对象的其他部分之前,先构建继承对象的所有成员对象。因此,如果省略初始化列表,C++将使用成员对象所属类的默认构造函数。
当初始化列表包含多个项目时,这些项目初始化的顺序为它们被声明的顺序,而不是它们在初始化列表中的顺序。
阅读全文
0 0
- 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++ 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++成员初始化列表
- 成员初始化列表
- C++成员初始化列表
- c++初始化成员列表
- 初始化成员列表
- C++初始化成员列表
- C++ 成员初始化列表
- C++初始化成员列表
- 成员初始化列表
- C++成员初始化列表
- C++初始化成员列表
- C++成员初始化列表
- Matlab探寻(二):和Android进行TCPIP通信(java.net.Socket)
- PowerDesigner设计表时显示注释列Comment
- HDU
- linux下find查找命令用法
- Qt Quick学习---------------构建一个简单的qml程序
- 成员初始化列表
- php环境搭建
- 我终于开通我的博客啦!
- C++-对象继承内存模型配图
- Xcode命令行执行单元测试
- java web实现第三方在线支付
- 解析JSON存到数据库
- bzoj 1143: [CTSC2008]祭祀river 求最长反链:网络流
- SVN使用流程