问题标签 [member-initialization]

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 回答
772 浏览

c++ - Clang++ Xcode 4.4 非静态成员初始化和移动构造函数

我正在将 Xcode 4.4 与山狮一起使用。我似乎无法理解为什么模板中的非静态成员初始化会调用变量的移动构造函数。有没有办法克服这个错误?

示例代码:

Xcode 4.4 和 Clang 在该行中抛出错误说:

0 投票
5 回答
3827 浏览

c++ - 非法成员初始化

我正在使用这个非常简单的类而不使用任何继承。

我得到这个错误。

错误 C2614:“A”:非法成员初始化:“A”不是基础或成员

SO上有类似的问题,但它们与继承有关。有人可以解释原因以及标准对此有何看法吗?

编辑:

如果有人详细说明转发构造函数和 C++11 中的此功能,那就更好了。

0 投票
4 回答
510 浏览

c# - 是否有与 C# 的成员大括号初始化功能等效的 Objective-C/C++?

除了“var”(请参阅​​我的另一篇文章)之外,我真正喜欢 C# 的一件事是我可以同时声明,然后使用大括号初始化类的成员,就像这样......

甚至在一条线上,像这样......

这将创建一个ReallyLongFooClassName 的实例,然后设置其成员'Name' 和'ID'。

这编译为与您键入此内容相同的内容...

那么Objective-C/C++有什么相当于C#的成员大括号初始化的东西吗?

注意:感谢我的另一篇文章,我已经知道 'auto' 是 Objective-C++ 中的 'var' 等价物,但 Objective-C 没有这样的等价物,这很遗憾。再次,请参阅我的其他帖子以获取更多信息。)

更新

我知道编写初始化程序。那是完全不同的节拍。我在上面在 C# 中演示的技术使用属性的设置器,或者直接设置成员变量而无需编写构造函数(它们相当于 Objective-C 的“init”成员。)必须编写 init 成员迫使你必须预先指定要设置的内容。成员大括号初始化允许您以任何您想要的顺序指定属性/成员变量的任意组合。同样,它只是一次编写多行代码的语法糖。它实际上并没有改变班级。

0 投票
5 回答
1134 浏览

java - c ++“new”关键字与java的比较

首先,我希望这不是重复的。我是一名java程序员,现在改用c++。在java中你可以这样做

据我了解,您可以在 c++ 中进行相同的操作(查看 java 中的 obj 如何仅作为参考保存在变量中),如下所示:

我的问题是:这个物体能活多久?它和指针一样长吗?另外,这可能会做一个对象的成员初始化吗?如果是这样,只要将指针保存为成员变量(直到您将其存储在其中的对象被破坏),该对象就会存在吗?

抱歉有任何错别字。有一个美好的一天/晚上!

0 投票
3 回答
1598 浏览

c++ - Class instance inside class declaration with constant arguments

I am having trouble declaring instances of a class with constant arguments inside the definition of another class.

From this I get the errors:

0 投票
2 回答
1804 浏览

c++ - 具有默认参数的成员初始化列表

是否可以将默认参数与成员初始化列表一起使用?

构造函数始终将 x、y 和 z 设置为 0,即使您通过设置参数调用它也是如此。

0 投票
4 回答
177 浏览

c++ - C++ 中有两种类型的成员初始化器列表吗?

我看到了两种使用成员初始化器列表的不同方法。第一个是这样的:

那里发生的事情很清楚。在构造函数中,我们有一个参数列表,我们使用它们来初始化类的成员。例如arg_name_1用于初始化varName1类变量的值。

在继承的情况下出现了另一种使用成员初始值设定项的方法:

这里发生的事情也很清楚。当我们ChildClass用一个字符串参数调用 的构造函数时,它ParentClass用相同的字符串参数调用 的构造函数。

我不清楚的是编译器如何区分这两种情况(语法相同)。例如,在第二个示例中,编译器可能认为它需要获取变量的name值并将其分配给 的ParentClass变量,ChildClass然后它会看到这样的变量没有在ChildClass.

我不清楚的第二点是为什么我们可能想在第二个示例中的构造函数的主体中放置一些内容。即使没有任何东西,它已经使用父类的构造函数创建并返回了一个对象。

0 投票
2 回答
700 浏览

c++ - 如何初始化 const 循环引用成员

例如,我有两个班级

Letfoo是 的对象Foo并且bar是 的对象Bar。有什么方法(正常或“黑客”)来创建/初始化foo,并且bar他们的成员会相互引用(我的意思是是和是'foo')?m_barm_foofoo.m_barbarbar.m_foo

允许将任何成员添加到Fooand Bar,为它们添加父级,使它们成为模板等等。

0 投票
5 回答
8146 浏览

c++ - 什么是 C++11 中的“成员初始值设定项”?

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

这里说:

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

它的定义是什么?

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

0 投票
1 回答
466 浏览

c++ - 哈希表不接受传递给成员初始化列表中的构造函数的函数

我有一个为班级编写的哈希表模板。我有一个依赖于使用这个哈希表的项目。它接受一个无符号整数值来初始化它拥有的桶数,以及一个要指向的哈希函数。我还没有写那个散列函数,但是我有一个声明。当我尝试在我的 Game 类中为哈希表数据成员使用成员初始化程序时,它给了我一个我不明白的错误。

我的哈希表类如下:

我的游戏.h:

我的 Game.cpp (这显然只是一个骨架,因为我无法让成员 init 工作)

我已经为此工作了很长时间,并且一直在碰壁。我非常感谢有关如何启动和运行这件事的一些帮助。让我知道是否需要查看另一个片段(在这方面我已经尝试过彻底)。