问题标签 [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++ - 使用具有先前默认成员初始化变量的默认成员初始化程序是否合法?
以下代码在使用时毫无疑问会失败:
因为我们在a
定义它之前尝试使用它并且由于[class.base.init]/13.3:
然后,非静态数据成员按照它们在类定义中声明的顺序进行初始化(同样不管mem-initializers的顺序)。
但是这段代码呢?
13.3 在这里似乎也很合理(使代码明确定义),但是我不确定它是否涵盖了上面清单中的情况,因为它提到了 mem-initializers 但错过了这个特定情况(IMO)。我承认这可能只是缺乏英语技能,所以我更愿意问。
标准中引用的段落是否使代码
- 定义明确(我的猜测)
- 未定义的行为
- 或者它是错误的段落?如果是这样,请指出我正确的位置。
c++ - 如何修复派生类给出“声明没有存储类或类型说明符”错误?
我正在尝试在派生类中初始化基类变量,但是却出现错误:
我一直在修改 Visual Studio 中的 C++ 继承和派生类。我用变量制作了主类“ Food
”protected
并想派生一个类“ Bread
”
当尝试在“ Bread
,”中初始化所述变量时,VS 会出错。我觉得这是一个非常简单的问题,我不知何故错过了。
我会除了Bread
要初始化的变量:
name
as ""
(空),cost
as“ 5
”,calories
as“ 200
”。
输出是一个错误:
c++ - 为什么这里无法访问枚举?
这是我的代码/命名空间:
现在,如果我在另一个结构中尝试此代码:
它工作得很好,但如果我试试这个:
它说'myNamespace::MyType::ASD2' is not a type
。
既然都已经声明过了,为什么会这样呢?
c++ - 从子类构造函数中构造基类的问题
我有2节课。由于 Doctor 将被视为 Employee,我应该在 Doctor 类中使用 Employee 类函数。Doctor 类唯一额外的东西是TITLE。基本上,我尝试的是我想向 Doctor 的构造函数发送值,设置标题然后将剩余的值发送到 Employee 的类;但是,我不能。这是我到目前为止所做的,
雇员.h
员工.cpp
医生.h
医生.cpp
主文件
c - Motive :此代码旨在为结构定义内的结构成员提供默认值
这是我的代码:
错误:
问题:
我尝试了这个问题一段时间,如果我像在声明结构时那样初始化结构成员的值,它会显示错误。
请告诉我这有什么问题?
c++ - 用不同的基类值初始化继承类中的成员
假设我有一个Entity
带有变量的类,它在该类x
中定义。0
好吧,然后我创建了一个派生类Player
,但我希望默认情况下Player
继承的是而不是,所以我创建的每个默认情况下都是。x
1
0
Player
x
1
这可能吗?
如果是,我该怎么做?
c++ - 具有成员初始化的类的实现文件 (.cpp)
我的问题一定很简单,但我找不到正确的方法将具有初始化成员的构造函数拆分为 .h 和 .cpp (定义和实现)文件。
如果,比如说,我有:
如何在 .cpp 文件中实现构造函数?如果在成员初始化之后(在头文件中)我放了分号 - 编译器会抱怨。如果我保留 { },.cpp 文件将重新定义构造函数,这也是错误的。当然,我可以明确地写下定义。所以.h文件是:
和 .cpp :
但是有没有办法将成员初始化保留在头文件中?提前致谢!另外,在专业编码中,什么是首选?
c++ - “Ninja”类没有任何名为“Damage”的字段
基类:
派生类:
编辑:嘿,我一直在前面提到的代码上收到“类'Ninja'没有任何名为'Damage”的字段,还有HealthPoints(对不起,这句话在发布问题后被删除)
我尝试指向 Damage 和 HealthPoints( * ,this,&) 但我在 '*' 标记之前得到了“预期的标识符。它工作的唯一方法是正常初始化它们,但是如果我想要 const Damage 怎么办?
c++ - 为什么在 ctor 中不允许访问成员对象的成员?
类边缘:
在 ctorexplicit Edge(const int idist, Node& end1, Node& end2)
中,为什么我不允许使用语法?: