我遇到了一个名为“成员初始化程序”的奇怪概念。
这里说:
C++11添加了成员初始化器,如果构造函数本身没有初始化成员,则在类范围内应用于成员的表达式。
它的定义是什么?
有一些例子来说明它的用法吗?
发布于 2013-09-15 11:19:06
它可能是指类中的成员初始化器。这允许您在声明点初始化非静态数据成员:
struct Foo
{
explicit Foo(int i) : i(i) {} // x is initialized to 3.1416
int i = 42;
double x = 3.1416;
};在的C++11常见问题中会有更多的相关报道。
发布于 2013-09-15 11:20:18
现在可以在为构造函数共享的类中添加初始化器:
class A
{
int i = 42;
int j = 1764;
public:
A() {} // i will be 42, j will be 1764
A( int i ) : i(i) {} // j will be 1764
};它避免了在构造函数中重复初始化器,对于大型类来说,这可能是一个真正的胜利。
发布于 2013-09-15 11:19:40
C++11允许非静态成员初始化,如:
class C
{
int a = 2; /* This was not possible in pre-C++11 */
int b;
public:
C(): b(5){}
};https://stackoverflow.com/questions/18811742
复制相似问题