问题标签 [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.
c++ - 错误 C2064 使用和
我真的不知道在这里做什么。我查找的每个答案都有我不理解的语法。
错误:
我在哈希表构造函数中使用函数指针。有人建议我使用 and 标头来解决我遇到的问题。它解决了错误,但我遇到了上述错误。
我的哈希表声明和ctor如下:
Game.h(包含表格):
Game.cpp(我正在尝试传入 xorHash 函数)
提前致谢。
c++ - c++11 类内成员初始化
我在启用标志 -std=c++11 的 gcc 4.8 中有一个简短的问题。我可以做到这一点,而且效果很好。
我想知道这是否是有效的 c++11 在像这样的类内成员初始化中具有“this”。
.net - String Array Expecting Declaration?
I'm hitting the following issue in this simple code:
The bit "publicationArray(0) etc" is telling me that a declaration for "publicationArray" is expected. This seems like it shouldn't be happening.
multidimensional-array - D - 为多维静态数组的结构成员设置默认值
我正在使用 D 编程语言。我想要一个struct
包含int
s 的多维静态数组,最初用一个非零值填充(在我的情况下,零是一个有效条目,我想最初将所有条目标记为无效)。因为它是一个struct
,它不能有一个默认的构造函数。相反,我可以为struct
.
问题是:如何以简短易读的方式编写这个多维数组值?是否有任何便利功能、特殊情况语法或习语可以做到这一点?
这是我想出的。
-1
这将按预期打印 s 的数组:
尽管如此,表达NA.repeat(SIZE).array().repeat(SIZE).array()
看起来很长,我怀疑可能有更好(更惯用,更易读)的方式来表达我的意图。
再尝试几次更新:
int [SIZE] [SIZE] a = NA;
即使使用当前的 beta 版本也无法编译:dmd-2.066-b2。int [SIZE] [SIZE] a = NA.repeat (SIZE).array ();
编译并做这件事。尽管如此,一致性仍然受到影响。int [SIZE] [SIZE] a = [NA, NA, NA];
看起来它本质上是上面的表达式,简化了。它编译但仅用NA
s 填充第一个三元素子数组。另外两个子数组包含一些类似垃圾的东西。这是某种部分初始化功能吗?对我来说,它看起来更像是一个错误,比如编译器接受无效代码。int [SIZE] [SIZE] a = [NA];
将第一个子数组设置[-1, 0, 0]
为与前一次尝试相同的垃圾,其余的设置为相同的垃圾。也有
fill
instd.algorithm
,但它适用于范围(不是范围的范围),并且看起来不像在初始化程序中很容易使用。至少不会更短。
c++ - 处理 C++ 类中难以避免的大量 const 成员
这是我上一个问题的后续问题:
简而言之,我有一个程序,它有一个 Grid 类,其中包含 3D 网格的属性。我希望这个网格的属性在创建后是只读的,这样类中的复杂函数就不会意外地弄乱网格(例如 if(bla = 10),而不是 if(bla == 10))等. 现在,这个问题在前面的讨论中已经得到了很好的回答:通过 create 函数调用初始化列表。
我的新问题来了。My Grid 有许多属性只是简单地描述了网格(网格点的数量、网格点的坐标等),在不同的对象之间重新分配它们是没有意义的。尽管如此,C++ 的基本教科书总是将带有大量参数的函数与糟糕的设计联系起来,但我需要它们才能拥有 const 成员变量。
是否有任何标准技术来处理此类问题?
c++ - 使用 C++11 的成员初始化器列表中的初始化器列表语法
我一直在经历“ A Tour of C++ ”,Bjarne 在构造函数的成员初始化中使用了 c++11 初始化器列表功能,就像这样(使用大括号):
但是,这不会在 c++11 之前编译。与旧的成员初始化器列表有什么区别(使用圆括号):
那么有什么区别,什么时候应该优先于另一个呢?
c++ - 我们可以只在 C++ 的成员初始化列表中调用成员函数吗?
我想提供一个具有成员函数的类,该函数将分别初始化类的所有成员。
例如
我知道我是否可以使用"class my : i(init())"
will work,但我有一些特殊的目的可以像上面那样初始化。
但是在上面的示例中,我收到以下错误:
“my”类没有任何名为“initMy”的字段。
如何解决这个问题?
javascript - 使用 null 来声明文字成员以供以后初始化是 JS 中可行的实践吗?
我将声明一个文字如下:
反对?
我想这样做,因为x: undefined
这与根本不声明是一样的x
。为以后的初始化声明文字成员时有什么好的做法?
c++ - 是否有一种非重复的方式允许程序员在复制和移动语义之间进行选择以进行成员初始化?
我希望能够使用移动语义或复制语义来初始化类的每个字段。构造函数都将使用基本相同的代码进行构造,如下所示:
等等
有没有比简单地为每个可能的组合声明一个构造函数更好的方法来解决这个问题,就像这样?
这是一个简化的表格,使其更易于阅读。
Object
是具有成员的类,并且Member
是成员的类型名。该Member
类型定义了一个复制构造函数和一个移动构造函数。
基本上,我的问题是如何以更少的代码重复执行以下操作: