cpp——与c之不同——初始化
2017-03-13 21:05
204 查看
初始化
c
支持复制初始化,不支持直接初始化void init() { int i1 = 5; //int i2(8); }
c++
支持复制初始化,支持直接初始化引入直接初始化主要为了支持类的初始化(构造函数),c++为了保持类型统一性,对非类类型也支持直接初始化
对于非类类型,直接初始化和复制初始化无区别
对于类类型,直接初始化可使用implicit构造函数,也可使用explicit构造函数,复制初始化可使用implicit构造函数,不可使用explicit构造函数,且复制初始化只允许传递一个参数
class CAnimal { public: CAnimal() : mGroup(0) { cout << "CAnimal()" << endl; } CAnimal(int group) : mGroup(group) { cout << "CAnimal(" << group << ")" << endl; } CAnimal(const CAnimal &other) : mGroup(other.mGroup) { cout << "CAnimal(const CAnimal &other)" << endl; } private: int mGroup; }; void init() { int i1 = 5; int i2(8); CAnimal animal1(5); CAnimal animal2 = 8; }
output:
CAnimal(5) CAnimal(8)
相关文章推荐
- C++类中各种不同类型成员根据是否static 、是否const类型的初始化方法不尽相同,写代码时经常搞乱,网上搜了一下资料,全部总结一下。一、例子 [cpp] view plaincopy ---
- 实例说明C语言中初始化和未初始化的全局变量所在不同的段
- 赋值和初始化不同以及安全拷贝
- 初学vc8-视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- c++ 自己创建的namespace,声明在h文件中,定义在cpp文件中,这种程序结构应该是合理的吧,欢迎不同见解的朋友来讨论。
- c++基础:普通变量初始化与类内初始值初始化的不同
- Android Camera CameraHal.cpp 初始化分析
- Android Camera OMXCameraAdapter.cpp初始化分析
- C与CPP的同与不同
- 视图中的OnCreate和OnInitialUpDate进行初始化有何不同?
- c++基础:普通变量初始化与类内初始值初始化的不同
- c和cpp中的那些不同(指针和数组)
- C++中不同变量的初始化规则
- 关于cpp构造函数当中使用memset初始化的陷阱
- 在CView类的构造函数,OnCreate,或OnInitialUpDate中进行初始化有何不同?
- Android Camera CameraHal.cpp 初始化分析
- 深入理解java虚拟机(三)(一个类加载器只初始化一次类对象,不同类加载器可以对同一类对象进行初始化)
- 通过未初始化全局变量,研究BSS段和COMMON段的不同
- Java_log2000_Java&Cpp&Python&JS等语言中对于循环语句局部变量的不同处理举例
- c++基础:普通变量初始化与类内初始值初始化的不同