首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是C++11中的“成员初始化器”?

什么是C++11中的“成员初始化器”?
EN

Stack Overflow用户
提问于 2013-09-15 11:17:13
回答 5查看 8.9K关注 0票数 15

我遇到了一个名为“成员初始化程序”的奇怪概念。

这里说:

C++11添加了成员初始化器,如果构造函数本身没有初始化成员,则在类范围内应用于成员的表达式。

它的定义是什么?

有一些例子来说明它的用法吗?

EN

回答 5

Stack Overflow用户

发布于 2013-09-15 11:19:06

它可能是指类中的成员初始化器。这允许您在声明点初始化非静态数据成员:

代码语言:javascript
复制
struct Foo
{
  explicit Foo(int i) : i(i) {} // x is initialized to 3.1416
  int i = 42;
  double x = 3.1416;
};

的C++11常见问题中会有更多的相关报道。

票数 18
EN

Stack Overflow用户

发布于 2013-09-15 11:20:18

现在可以在为构造函数共享的类中添加初始化器:

代码语言:javascript
复制
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
};

它避免了在构造函数中重复初始化器,对于大型类来说,这可能是一个真正的胜利。

票数 7
EN

Stack Overflow用户

发布于 2013-09-15 11:19:40

C++11允许非静态成员初始化,如:

代码语言:javascript
复制
class C
{
   int a = 2; /* This was not possible in pre-C++11 */
   int b;
public:
   C(): b(5){}

};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18811742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档