C++ 11 之初始化
来源:互联网 发布:临床药物查询软件 编辑:程序博客网 时间:2024/06/13 21:36
1.4中不同初始化的形式
a.string s("zhl")、int i(3); //括号初始化
b.string s="zhl"、int i= 3; //等号初始化
c.int arr[4] = {1,2,3,4}、struct tm today ={0}; //POD数据用大括号
d.struct s { int x; s(): x(0){}}; //构造函数成员初始化;
2.C++03 中不能初始化 POD 数组的类成员,也不能在使用 new[] 的时候初始 POD 数组,C++ 11终于用大括号统一了;
ps: POD:http://www.cnblogs.com/viscount/p/5842895.html
a.string s("zhl")、int i(3); //括号初始化
b.string s="zhl"、int i= 3; //等号初始化
c.int arr[4] = {1,2,3,4}、struct tm today ={0}; //POD数据用大括号
d.struct s { int x; s(): x(0){}}; //构造函数成员初始化;
2.C++03 中不能初始化 POD 数组的类成员,也不能在使用 new[] 的时候初始 POD 数组,C++ 11终于用大括号统一了;
ps: POD:http://www.cnblogs.com/viscount/p/5842895.html
3. 对于结构数据,直接初始化;
class C{int a;int b;public: C(int i, int j);};C c {0,0}; //C++11 only. 相当于 C c(0,0);int* a = new int[3] { 1, 2, 0 }; /C++11 onlyclass X { int a[4];public: X() : a{1,2,3,4} {} //C++11, 初始化数组成员};4.对于容器来说,也不要用push_back()
// C++11 container initializer vector vs<string>={ "first", "second", "third"}; map singers = { {"Lady Gaga", "+1 (212) 555-7890"}, {"Beyonce Knowles", "+1 (212) 555-0987"} };5.类中也可以直接初始化;
class C { int a=7; //C++11 only public: C(); };6.扩展
class A{ int c; };int main(){ A *w = new A; //new完之后的c未初始化; A *x = new A(); //new完之后的c已初始化;}C++03存着这种奇怪的问题,让你有的时候用的很不放心;所以尽情用C++11吧!
0 0
- Objective-C之初始化
- C语言之变量初始化
- 【c++】c++11初始化
- C++ 11 之初始化
- 例解GNU C之指定初始化项目
- 例解GNU C之指定初始化项目
- 例解GNU C之指定初始化项目
- 征服C语言之指针初始化
- Objective-C编程之对象初始化
- 例解GNU C之指定初始化项目
- 【iOS开发之Objective-C】初始化对象
- C++Primer学习之四初始化
- C语言之结构体的初始化
- c/c++学习之结构体初始化
- C++11之统一初始化
- c++11之初始化列表
- c++11之初始化列表
- C++11之初始化列表
- 块级元素的上下边距
- Android Hybrid混合开发(Webview+JSBridge)简介
- 51nod1182
- test1
- arm驱动加载
- C++ 11 之初始化
- Android Material Design悬浮按钮和可交互提示
- Material Design 入门(一)——TextInputLayout和TextInputEditText
- c++:关于迭代器的一些认识
- JS 中对变量类型的判断
- 嵌套的盒子
- MapReduce之自定义Key和Value
- Java 8新特性 Stream API 编程
- linux-使用apt-get安装软件问题汇总