问题标签 [ctor-initializer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
148 浏览

c++ - 将成员指针分配给构造函数初始化程序中另一个成员的地址是标准的 C++ 吗?

这符合标准吗?

0 投票
2 回答
976 浏览

c++ - 在构造函数初始化器中使用成员的成员函数

我在初始化列表中遇到过以下几次,但我一直无法很好地解释它。任何人都可以解释为什么以下失败(我没有编译器来捕捉拼写错误,所以请耐心等待):

当试图调用在初始化器列表中初始化更高的成员的成员函数时,我得到了段错误。我似乎记得这是一个已知问题(或者可能是设计使然),但我从未见过它被很好地描述过。附加的示例是用普通的旧数据类型设计的,但是Bar::m_myInt用另一个缺少默认(空)构造函数的对象替换,问题就更真实了。任何人都可以启发我吗?

0 投票
6 回答
51597 浏览

c++ - const 引用类成员是否会延长临时对象的寿命?

为什么会这样:

给出以下输出:

答案是:

代替:

答案是:四

0 投票
4 回答
307 浏览

c++ - 默认初始化整数成员是否首选空初始化程序?

我刚刚读到GMan的评论

应该优先于

请注意第一个示例中缺少的NULL

GMan是对的吗?这可能有点主观,所以“你喜欢空初始化器进行默认初始化吗?” 可能更合适。

此外,如果您更喜欢空初始化器,这是否适用于其他整体成员?

当然,请通过描述为什么一个应该优于另一个来捍卫你的观点。

0 投票
8 回答
2466 浏览

c++ - const 字段的复杂初始化

考虑这样一个类:

有一个例程 (ComputeImportantConstants) 在运行时计算三个常量。假设计算相当复杂,并且本质上一次产生所有三个值。此外,结果取决于构建配置,因此不能对结果进行硬编码。

是否有一种明智的方法可以将这些计算值存储在类的相应 const 双字段中?

如果没有,您能否建议一种更自然的方式在 C++ 中声明这样的类?

在 C# 中,我会在这里使用带有静态构造函数的静态类,但这不是 C++ 中的选项。我还考虑过使 ImportantConstant1..3 成为非常量字段或函数调用,但两者似乎都逊色。

我发现初始化 const 字段的唯一方法是使用初始化列表,但似乎无法在这样的列表中传递多输出计算的结果。

0 投票
4 回答
23040 浏览

c++ - 如何初始化类字段?

一个基本的问题,但我很难找到一个明确的答案。

除了方法中的赋值之外,初始化程序列表是在 C++ 中初始化类字段的唯一方法吗?

如果我使用了错误的术语,这就是我的意思:

编辑:特别是,有没有一种用结构初始化器初始化结构字段的好方法?例如:

0 投票
5 回答
825 浏览

c++ - 初始化列表使变量未初始化?

我有一个像这样的唯一构造函数的类:

在某个方法中,我有这个 if 语句

Valgrind 对那条线说:

条件跳转或移动取决于未初始化的值

但是我在我的初始化列表中初始化了它!我想我相信 Valgrind。因为,有时一切都正确,有时什么也没有发生......所以,可能counter会得到一个错误的值,所以直到计数器达到 10 需要很长时间。

我已经检查了我使用计数器的代码是否存在一些错误。但我认为你不能用 C++ 语句“取消初始化一个值”......

这些是我使用的所有行(初始化列表除外)counter

Valgrind 为screenAlpha.

两个变量都是private,我没有friend类....

那么发生了什么?问题可能是什么?

编辑:

我将值打印出来:
在构造函数中,它是正确的:0
在我的方法中,它是垃圾。它打印随机值,例如:

  • -97298.8...
  • -106542.2...

print 语句是所有赋值到的方法的第一行counter

第二次编辑:

会不会是这个问题!!???

在我的Game课堂上,我这样初始化IntroScreen

viewIntroScreen这里是一个指向被调用的抽象超类型的指针View

0 投票
3 回答
990 浏览

c++ - 构造函数中的冒号是什么意思?

可能的重复:
C++ 奇怪的构造函数语法构造函数中冒号后面的
变量
C++ 构造函数名称后面的冒号 ( : ) 有什么作用?

对于下面的 C++ 函数:

冒号(“:”)表示它的左右部分之间的关​​系是什么?并且可能,从这段代码可以说什么?

0 投票
5 回答
1675 浏览

c++ - Tor Initializer:自初始化导致崩溃?

我很难调试生产中的崩溃。只是想与这里的人确认语义。我们有一个像...

有人将初始化更改为使用 ctor 初始化列表,这在我们的代码语义中是相当正确的。初始化的顺序和它们的初始值是正确的。所以这个类看起来像......

但是代码突然开始崩溃!我将一长串初始化列表与这段代码隔离开来m_str(m_str)。我通过链接文本确认了这一点。

它必须崩溃吗?标准对此有何评论?(这是未定义的行为吗?)

0 投票
7 回答
713 浏览

c++ - 基类的析构函数被调用而不破坏基类!

两个问题:

  1. 为什么 A 的析构函数会像普通函数一样被调用而不是销毁对象?(或者只有当子类的析构函数调用基类的析构函数时,基类才会被销毁?)我正在尝试这个示例代码来了解析构函数的工作原理。因此,如果简单地调用析构函数不会破坏对象,那么显然还有其他类型的调用调用析构函数,然后才破坏对象。这种电话有什么特别之处,它是什么电话?
  2. 有没有办法在 B 的构造函数中为 A 设置一个初始化列表?像这样的东西:

    /li>