C++学习之构造函数初始化式
来源:互联网 发布:黑鹰坠落真实事件知乎 编辑:程序博客网 时间:2024/06/10 15:16
众所周知,构造函数的job就是保证每个对象的数据成员具有合适的初始值
//假设name(string),stuNum(int),grade(int)都是类myClass的数据成员class myClass::myClass(){name = "1班";stuNum = 60;grade = 2;}
一直认为上面构造函数的函数体内三行便是对数据成员的初始化,今天一个偶然的bug给了我当头一棒,看了看Primer才知道那是赋值不是初始化。。。。。。
其实构造函数的执行是分两个阶段的:1、初始化阶段 2、普通的计算阶段 。(计算阶段由构造函数的函数体内的所有语句组成,成员变量的初始化发生在计算阶段之前!!!)
那么我们怎么对成员变量初始化?
1、通过构造函数的初始化列表,提倡!!
2、不使用初始化列表:(1)、类类型的成员变量会使用默认构造函数初始化;(2)、内置类型:依据变量的作用域--全局初始化,局部不初始化。
不过还是得注意:
1、构造函数的初始化列表指在构造函数的的定义中而不是声明中指定
2、有些变量必须使用初始化列表初始化:没有默认构造函数的类类型变量、const成员变量、引用类型的变量
- C++学习之构造函数初始化式
- C++学习之<拷贝初始化构造函数>
- C++ 学习之构造函数:构造函数小结2 构造函数初始化列表
- (C++)构造函数初始化
- Objective-C学习- 便利初始化函数和便利构造器
- 初始化式构造函数
- Spring源码学习-容器初始化之FileSystemXmlApplicationContext(一)构造函数
- C++细节学习之构造函数初始化列表
- C++学习笔记之 构造函数的初始化列表
- JAVA学习笔记之构造函数和初始化块
- C/C++学习之构造函数
- 【C/C++】构造函数的初始化列表
- 【C#】 之 构造函数
- 构造函数之显式初始化与赋值
- 构造函数初始化列表(C++)
- C++之构造函数(二) 构造函数初始化
- C++之构造函数(三) 多重继承构造函数初始化
- C++ 构造函数初始化列表学习笔记
- 图片验证码识别入门
- iOS杂谈18—ASIHTTPRequest 中文详解
- mysql sql语句大全
- H264 syntax overview
- C语言温习(字符串及其函数)
- C++学习之构造函数初始化式
- linux学习日志前的一点感言
- Struts2的结果集的详细介绍及说明案例分析
- php + apache + mysql 开发
- 详解C语言的类型转换
- 用C#实现数据结构--树
- PHP魔术方法之__call与__callStatic方法
- SSAS Cube
- C++之const成员函数