![]() |
1
17
你想做的在C中是不可能的。基类中的构造函数必须在任何派生类的构造函数之前运行,否则可能会损坏对象状态。子对象必须能够假定其基是完全构造的和可用的。 |
![]() |
2
17
我知道你的设计错了。您不应该从构造函数内启动该进程。当需要时,使用代码应该显式调用start()方法。 |
![]() |
3
1
我将修改您的设计,以便在构造之后调用初始化(并且可能是start()——虽然我通常会让这是一个由用户调用的公共方法)。 如果你在做条形码扫描仪,你可以在第一次扫描的时候做这个。只是懒惰地使用派生类中的数据初始化成员。 这可以解决您的问题,用户的使用不会发生真正的变化。 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 3 年前 |
![]() |
nick2225 · 隐式调用复制构造函数? 3 年前 |
![]() |
nohaga · 为什么在本例中p3需要默认构造函数? 3 年前 |
![]() |
Aadil Hoda · 为什么类类型的成员需要初始化? 3 年前 |
![]() |
EloiGG · 具有任意类型的变量的可数的C++函数 3 年前 |