关于使用C++的成员初始化列表
来源:互联网 发布:整装好还是基装好 知乎 编辑:程序博客网 时间:2024/06/05 14:16
- 只有比别人更早、更勤奋地努力,才能尝到成功的滋味
初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。它位于参数列表的右括号之后,函数体的左括号之前。
class Animal{public: Animal(int age); ~Animal(); void setAge(int age); int getAge() const;private: const int m_age; int m_weight; int m_height;};Animal::Animal(int age){ m_age = age; // error m_weight = 10; m_height = 5;}
因为从概念上将,调用构造函数的时候,对象将在括号中的代码执行之前被创建。因此,调用Animal(int age)构造函数将导致程序首先给3个成员变量分配内存。然后,程序流程进入到括号中,使用常规的赋值方式将值存储到内存中。因此,对于const成员,必须在执行到构造函数体之前,进行数据成员的初始化。针对这个情况,C++提供了成员初始化列表。
Animal::Animal(int age) : m_age(age) // initialize m_age{ m_weight = 10; m_height = 5;}
只有构造函数可以使用这种初始化列表语法。此外,对于被声明为引用的类成员,也必须使用这种语法。如Animal & location;也应当使用。这是因为引用于const数据类似,只能在被创建时进行初始化。对于简单的数据成员,使用成员初始化列表与在函数体中使用赋值没有什么区别。
0 0
- 关于使用C++的成员初始化列表
- 关于成员初始化参数列表的总结
- 关于c++的成员初始化列表
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用 .
- c++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- C++中成员初始化列表的使用
- 必须使用【初始化列表】初始化数据成员的情况
- C++中关于成员初始化列表的简单介绍 <转>
- C++中关于成员初始化列表的简单介绍
- 成员初始化列表的句法
- 必须要使用成员初始化列表的情况
- 怎样停止一个 starting 和 stoping 的服务
- Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for architecture 'armv7'
- Hibernate的FlushMode与session.flush()
- 【POJ】:POJ2606,poj1118,poj2780合集
- 8.mysql merge 用法
- 关于使用C++的成员初始化列表
- AutoCompleteTextView 简单用法
- cordova环境配置(转)
- HTTPS那些事(三)攻击实例与防御
- Android通过Palette来动态决定UI色彩风格
- 真机编译报错:"The application could not be verified."
- EAX、ECX、EDX、EBX寄存器的作用
- android 半边圆角
- 前端手册之---CSS 选择器(包括css1-css3)