1
55
虚拟继承用于解决DDD问题(派生上可怕的菱形)。 请看以下示例,其中有两个类继承自同一基类:
现在,您想创建一个新类,该类同时继承C类和D类(它们都继承了Base::Ambig()函数):
当您在上面定义“错误”类时,实际上创建了DDD(菱形派生问题),因为您不能调用:
以及:
为了防止这种问题,您应该使用虚拟继承,它将知道引用的权利
因此-定义:
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |