问题标签 [initialization-list]

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 投票
4 回答
337 浏览

c++ - c ++ self在初始化列表中

我有这个代码片段

当我调用复制构造函数时它不起作用(创建和销毁对象)。

编辑:如果我使用

我明白了type 'class Osoba' is not a direct base of 'Osoba'

这是怎么做的?

0 投票
5 回答
63971 浏览

c++ - 如何初始化本身具有非平凡构造函数的对象的 stl 向量?

假设我有以下课程:

并且假设这个类没有默认的平凡构造函数MyInteger()int由于某种原因,我必须始终提供一个来初始化它。然后假设在我的代码中某处我需要一个vector<MyInteger>. 我如何初始化MyInteger这个中的每个组件vector<>

我有两种情况(可能解决方案是相同的,但我还是会说明它们),一个函数内部的普通变量:

并作为类中的数据:

是否可以仅在初始化列表中执行此操作,还是必须在 MyFunClass(int, int) 构造函数中手动编写初始化?

这似乎非常基本,但我不知何故在我的书中错过了它,在网上找不到。

0 投票
3 回答
11690 浏览

c++ - 从派生类初始化列表调用基类构造函数的顺序

上面只是一个伪代码。实际上,我想知道调用基本构造函数的顺序是否重要?

是否有由任何案例引起的不良行为(尤其是极端案例)?我的问题是更多的技术方面,而不是编码风格。

0 投票
3 回答
143 浏览

c++ - 为什么在没有创建额外副本的情况下在初始化列表中分配数据?

Parashift 很好地解释了初始化列表,但没有解释为什么在 ctor 主体中分配之前创建了一个额外的变量副本,但是通过初始化列表分配时没有创建额外的副本。
我什至遇到过使用 ++i 而不是 i++ 的建议,因为前者避免了在分配之前创建临时 i 。在 ctor 主体中分配的 POD 是否相同?在赋值发生之前创建了一个临时变量?

换句话说,为什么编译器需要创建一个变量的额外副本?为什么不能直接分配变量?
为什么?

0 投票
3 回答
1228 浏览

c++ - 如何生成具有唯一值的向量?

我有这个例子来生成一个向量中的唯一对象:

如果我将我的主要内容更改为:

然后将一个 A 类型的对象复制到所有向量元素中。

有没有办法创建一个包含所有唯一对象的向量(如第一个示例)?

为了更清楚:我有一个包含向量的类。此向量必须包含所有唯一对象(不是一个对象的副本)。我想在初始化列表中初始化它(而不是在构造函数的主体中)。

0 投票
3 回答
23021 浏览

java - 为什么 Java 没有像 C++ 中那样的初始化列表?

在 C++ 中,您可以使用初始化列表在构造函数开始运行之前初始化类的字段。例如:

我很好奇为什么 Java 没有类似的功能。根据核心 Java:第 1 卷

C++ 使用这种特殊语法来调用字段构造函数。在 Java 中,不需要它,因为对象没有子对象,只有指向其他对象的指针。

以下是我的问题:

  1. “因为对象没有子对象”是什么意思?我不明白什么是子对象(我试着查了一下);它们是指扩展超类的子类的实例化吗?

  2. 至于为什么 Java 没有像 C++ 这样的初始化列表,我认为原因是因为 Java 中默认情况下已经初始化了所有字段,还因为 Java 使用super关键字来调用 super(或 C++ 术语中的 base)-class 构造函数. 它是否正确?

0 投票
3 回答
1371 浏览

c++ - 构造函数中的初始化列表

我听说在构造函数中使用初始化列表的好处是不会有类类型对象的额外副本。但是对于 T 类构造函数中的以下代码意味着什么?如果我评论分配并使用初始化列表会有什么区别?

0 投票
1 回答
955 浏览

c++ - Qt C++初始化列表混乱

我开始使用 Qt(和 C++,在较小程度上),我想确保在继续之前我完全理解了基本代码。我知道初始化列表中的第一个元素用于选择非默认继承构造函数。

但是,ui(new Ui::TestAppMain) 的目的是什么?在我看来,这将是一个无限循环,因为 ui 在构造函数中被设置为 TestAppMain 的一个新实例,但事实并非如此。

0 投票
4 回答
11638 浏览

c++ - 多个变量的 C++ 初始化列表

我正在尝试学习如何初始化列表。

我在下面有一个简单的类,并尝试初始化变量列表。第一个Month(int m): month(m)作品。我正在尝试在该行下方使用多个变量执行类似的操作。这种格式有可能吗?我必须摆脱一个班轮吗?

显然我没有太多线索如何做到这一点,任何指导将不胜感激,谢谢

0 投票
3 回答
138 浏览

c++ - 成员变量

一个类中是否有一个成员变量不是static但需要定义(因为定义了一个静态变量来保留内存)?如果是这样,我可以举个例子吗?如果不是,那么为什么静态成员是唯一可定义的成员?

BJARNE 说如果你想使用一个成员作为一个对象,你必须定义它。

但是当我明确定义成员变量时,我的程序显示错误: