Lecture 3
Unlike Java, C++ allows a class to inherit from more than one class, thus the inheritance hierarchy may form an arbitrary DAG. Using multiple inheritance, a class cannot only represent a subtype of more than one possibly unrelated supertype, but it can inherits fields and methods, and thus implementation aspects, of more than one class.
https://cpp.cs.cloud.vt.edu/lectures/lecture3/lecture-3