|
|
1
8
您必须指定
|
|
2
25
我玩了一个程序,可以帮助你研究复杂的虚拟基地。它打印下的类层次结构
添加足够的虚拟性。。。
但如果你把所有的基地都虚拟化了:
你得到一颗钻石 以不同的初始化顺序 : 玩得高兴! |
|
|
3
2
实际上,我会说,B和C:虚A,G和H:虚E,E:虚B和C。所有其他继承链接都可以是普通继承。不过,这个怪物要花60年才能打一个虚拟电话。 |
|
|
4
1
如果要确保层次结构中顶层类的对象(
班级
|
|
|
5
0
如果您希望每种类型的每个实例只有一个“物理”实例(只有一个A,只有一个B等等),那么每次使用继承时您只需要使用虚拟继承。 如果需要其中一个类型的单独实例,请使用普通继承。 |
|
6
0
编辑 :我认为A是最派生的类;) @路德的回答很酷,但又回到了最初的问题:
你需要使用
在这之前没必要
但是,如果您事先不知道另一个类是否将从基类继承,则可以添加
正如Luther所指出的,它修改了实例化顺序(并且对性能有轻微的影响),但是我认为任何依赖于构造顺序的设计从一开始就是错误的。作为一种精确性:您仍然可以保证基类在派生类的任何属性之前初始化,因此在执行派生的构造函数体之前初始化。 |
|
|
7
0
一般来说,如果可以避免虚拟类,可以用一些模板替换,或者尝试以某种方式解耦。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |