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

申祷无 2016-07-03 03:35:43
比如这个:
Text_query::Text_query(ifstream &is) : file(new vector<string>)
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2016-07-04
  • 打赏
  • 举报
回复
这个不也是用参数,只不过是new运算符返回后的结果,只要返回类型与该成员变量类型一致即可
lm_whales 2016-07-04
  • 打赏
  • 举报
回复
还可以用常量表达式初始化 注意,初始化表中的数据,也是表达式 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 的初始化表数据类型 可以替代 () 的初始化表。但是能力要强一些。 随之而来的是类型检查更严格一些。
lm_whales 2016-07-04
  • 打赏
  • 举报
回复
还可以用全局对象(外部变量,静态变量,类静态变量,名空间内定义的变量)初始化 指针还可以用全局对象地址初始化(指针,包括new 出来的对象的地址) 引用可以用全局对象初始化 还可以用函数返回值初始化
liuxing9345 2016-07-03
  • 打赏
  • 举报
回复
可以给本类的成员进行初始化,还可以调用基类的构造函数 class Base{ private: int age; public: Base(int age1){ age=age1}; }; class Derived : public Base { private: string name; public: Derived(string& name1) : Base(int a1), name(name1) { } };
bluewanderer 2016-07-03
  • 打赏
  • 举报
回复
普通的初始化而已

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧