Code Bye

构造函数初始值列表除了用参数还能怎么用

例如这个:
Text_query::Text_query(ifstream &is) : file(new vector<string>)
解决方案

20

还可以用全局对象(外部变量,静态变量,类静态变量,名空间内定义的变量)初始化
指针还可以用全局对象地址初始化(指针,包括new 出来的对象的地址)
引用可以用全局对象初始化
还可以用函数返回值初始化

20

还可以用常量表达式初始化
注意,初始化表中的数据,也是表达式
C++11 可以用初始化表初始化
方式为小括号()改为大括号{}
例如
class C{
vector <int > v;
public :
C ():v{1,2,3,4,5,6,7,8,9}{};
};
这里 {1,2,3,4,5,6,7,8,9} 是C++11 的初始化表数据类型
可以替代 () 的初始化表。但是能力要强一些。
随之而来的是类型检查更严格一些。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明构造函数初始值列表除了用参数还能怎么用