c++11类的就地初始化问题
2015-06-17 16:20
260 查看
1 c++98只能对静态的常量能进行就地初始化,其他的不行
struct st
{
static const int a=10;//yes
int a=10;//no
}
c++11可以对非静态的成员变量就地初始化,
struct st
{
int a=10;//yes
}
但对静态的非常量的成员变量c++98和c++11保持了一致性,即需到头文件以外的地方去定义它
struct st
{
static int a=10;//c++98和c++11都不行
}
2 结构内用()和{}初始化不同:前者不可以后者可以
struct ini
{
string s("Gimy"); //错误
string s{"Gimy"}; //正确
}
struct st
{
static const int a=10;//yes
int a=10;//no
}
c++11可以对非静态的成员变量就地初始化,
struct st
{
int a=10;//yes
}
但对静态的非常量的成员变量c++98和c++11保持了一致性,即需到头文件以外的地方去定义它
struct st
{
static int a=10;//c++98和c++11都不行
}
2 结构内用()和{}初始化不同:前者不可以后者可以
struct ini
{
string s("Gimy"); //错误
string s{"Gimy"}; //正确
}
相关文章推荐
- 在 Qt4 中使用 C++11
- 使用eclipse编译含有C++11特性的代码
- eclipse支持c++11
- C++11可变参数函数与for循环
- vs2013 编译c++是发现惊天bug
- 关于C++现状的一些思考
- 用C++11优化矩阵运算的空间和时间效率
- 浅析构造函数之默认构造函数
- c++中返回数组的函数
- C++函数重载的几个问题
- C++11 现代C++风格的新元素
- c++11 lambda表达式浅谈
- C++11之“move”语意
- C++11之Lambda表达式
- C++11特性乱弹
- 掀起C++ 11的神秘面纱(1)
- 掀起C++ 11的神秘面纱(2)
- Pascal's Triangle II
- lamda 函数 (or 表达式)
- C++11新特性