Hãy xem xét một lớp Waldo, được thừa kế từ Foo và Baz, tức .:Tính năng này có hoạt động không? C++ đa kế thừa và constructor chaining
class Waldo : public Foo, public Baz {
...
};
Khi tôi tạo ra một thể hiện mới của Waldo:
Waldo *w = new Waldo;
làm Foo và Baz xây dựng được gọi là? Nếu chúng không được gọi theo mặc định, có cách nào dễ dàng trong KHAI THÁC LỚP HOẶC TRONG KẾT HỢP/ĐỊNH NGH ofA của nhà xây dựng Waldo để buộc chúng được gọi?
(Dường như tôi có thể cố gắng làm constructor chaining, và C++ bị cáo buộc không làm điều đó. Tôi không chắc chắn.)
Những gì tôi đang cố gắng làm là "chú thích" lớp khác nhau các khai báo, nơi các chú thích gây ra (trong số những thứ khác) các cá thể của lớp được chú thích được liên kết vào các danh sách được duy trì bởi các lớp chú thích. Điều này cho phép tôi, ví dụ, đi bộ danh sách của tất cả các đối tượng với Baz-nature, áp dụng một hoạt động nhất định cho họ, và không phải lo lắng về việc liệu tôi có nhớ thêm cá thể vào danh sách các đối tượng với Baz-nature hay không, vì constructor đã làm nó automagically.
Lưu ý: việc sử dụng 'mới' ở đây là giả mạo, bạn hoàn toàn có thể nói 'Waldo w;' và một thể hiện 'Waldo' sẽ được tạo. –