Thừa kế đơn lẻ dễ thực hiện. Ví dụ: trong C, thừa kế có thể được mô phỏng là:Sự đa thừa kế của C++ được triển khai như thế nào?
struct Base { int a; }
struct Descendant { Base parent; int b; }
Nhưng với nhiều kế thừa, trình biên dịch phải sắp xếp nhiều cha mẹ trong lớp mới xây dựng. Làm thế nào là nó được thực hiện?
Vấn đề tôi thấy phát sinh là: liệu bố mẹ có được sắp xếp theo AB hoặc BA hay thậm chí là cách khác không? Và sau đó, nếu tôi thực hiện một dàn diễn viên:
SecondBase * base = (SecondBase *) &object_with_base1_and_base2_parents;
Trình biên dịch phải xem xét có thay đổi hay không con trỏ ban đầu. Những điều phức tạp tương tự được yêu cầu với ảo.
http://en.wikipedia.org/wiki/Diamond_problem – Dario
Mô phỏng C C sẽ quên con trỏ VTable (chi tiết triển khai). –
@Dario: Bài viết này đề cập đến các vấn đề quá tải trong đa thừa kế nhưng không chứa bất cứ điều gì về bố cục đối tượng và truyền các đối tượng trong C++. – mmmmmmmm