C语言中11就地初始化与列表初始化有何区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计835个文字,预计阅读时间需要4分钟。
1. 就地初始化 + 1.1 简介 + 在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。例如:class C { private: static const int a=10; // yes int a=10; // no }; 在C++11中,结构体或类的数据成员在声明时可以进行就地初始化,只需在声明时提供初始值。
1.就地初始化
1.1简介
在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。
class C { private: static const int a=10; //yes int a=10; //no }
在C++11中,结构体或类的数据成员在申明时可以直接赋予一个默认值,初始化的方式有两种,一是使用等号“=”,二是使用大括号列表初始化的方式。注意,使用参考如下代码:
class C { private: int a=7; //C++11 only int b{7}; //或int b={7}; C++11 only int c(7); //error };
注意,小括号初始化方式不能应用于就地初始化。
本文共计835个文字,预计阅读时间需要4分钟。
1. 就地初始化 + 1.1 简介 + 在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。例如:class C { private: static const int a=10; // yes int a=10; // no }; 在C++11中,结构体或类的数据成员在声明时可以进行就地初始化,只需在声明时提供初始值。
1.就地初始化
1.1简介
在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。
class C { private: static const int a=10; //yes int a=10; //no }
在C++11中,结构体或类的数据成员在申明时可以直接赋予一个默认值,初始化的方式有两种,一是使用等号“=”,二是使用大括号列表初始化的方式。注意,使用参考如下代码:
class C { private: int a=7; //C++11 only int b{7}; //或int b={7}; C++11 only int c(7); //error };
注意,小括号初始化方式不能应用于就地初始化。

