|
|
1
14
您需要使用初始值设定项列表。
如果问题是
问题是构造函数主体被执行 之后 所有成员都已初始化。 它们首先通过调用初始值设定项列表中指定的任何构造函数进行初始化,如果成员未在其中列出,则通过调用其默认构造函数进行初始化。
这就是你抱怨错误的原因
然后
之后
所有成员都已初始化,将执行构造函数体(在其中执行
分配
而不是初始化
|
|
|
2
3
必须为具有参数化构造函数的每个成员变量使用初始值设定项列表:
如果需要参数在运行时可计算,请使用静态成员函数,并将对它们的调用插入初始值设定项列表。 |
|
|
3
1
因为编译器将对所有类成员执行默认初始化,所以需要提供一个默认的构造函数。 之前 司机跑了。这是不可避免的。但是,您可以使用c'tor初始值设定项列表来指定自定义c'tor(我假设您知道这一点)。
一个潜在的解决方法是将这样一个私有的默认任务添加到
然而,这是一个设计缺陷。最好的方法是重新设计
|
|
|
4
1
这样写:
否则,编译器在进入构造函数体之前尝试用默认的构造函数初始化BEER。在进入构造函数主体之前,必须初始化成员变量。 您还可以考虑使用一个默认的构造函数,并将beer的成员设置在构造函数体中。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |