Co mam zamiar zrobić, to rozwijać dwie różne klasy bazowe, które nie powinny być dziedziczone razem w jednej klasie pochodnej. Czy istnieje sposób, w jaki mogę to wymusić w czasie kompilacji?Czy można zapobiec dziedziczeniu wielu klas bazowych podczas kompilacji?
class Base1 {};
class Base2 {};
class Derived1 : public Base1 {} // OK!
class Derived2 : public Base2, public Other {} // OK!
class Derived3 : public Base1, Base2 {} // Can I force the compiler to complain?
Derived1 d1; // OK!
Derived2 d2; // OK!
Derived3 d3; // Or can I force the compiler to complain here?
Jestem świadomy, że documentation jest to dobry pomysł, po prostu zastanawiasz się, jeśli jest to możliwe.
Myślę, że posiadanie prywatnego konstruktora może załatwić sprawę. Ale spowoduje również wyłączenie przypadku "Derived2". – littleadv
Czy to nie wystarczy napisać "Nie rób tego!" w dokumentacji? –