Multiple inheritance
两种可能的class hierarchy
C++是支持multiple inheritance特性的,这就是使得C++的class hierarchy可能非常复杂,下面是两类class hierarchy:
Diamond and the diamond problem
A
/ \
B C
\ /
D
D inherit from B
D inherit from C
B inherit from A
C inherit from A
这种class hierarchy是存在The diamond problem的。
Tree
A1 A2
| |
B C
\ /
D
D inherit from B
D inherit from C
B inherit from A1
C inherit from A2
When to use multiple inheritance
1、mixin multiple、multiple CRTP
参见 Variadic-CRTP
、
2、implement multiple interface