TheMediator95 pisze:W C++ klasa pochodna może mieć więcej niż jedną klasę bazową, tak więc bez problemu jeśli klasa MyXmppClient dziedziczyłaby po kolejnym "modelu", to efekt byłby taki sam jak przy użyciu wskaźnika. Więc jeśli chodzi o widoczność elementów składowych klas to nie ma znaczenia którego sposobu się użyje.
Lol nope.
Patrz.
Mam sobie klasę MyXmppClient, w której załóżmy, że jest RosterListModel i ChatsListModel.
Obie zawierają podobne funkcje i pododne dane, ale ChatsListModel zawiera dane dotyczące otwartych rozmów, zaś RosterListModel zawiera całą listę kontaktów. Jeśli użyłbym dziedziczenia, nie byłbym w stanie przechowywać obu osobnych list, you know?
Ale za to mogę zrobić na luzie wskaźnik roster i wskaźnik chats. :> Teraz mogę zrobić Q_PROPERTY, dzięki czemu będę mógł pobrać jedną listę po prostu w sposób xmppClient.roster i xmppClient.chats. Tego też nie mógłbym za bardzo zrobić korzystając z dziedziczenia.
bsystem() { this->approve(); }
lolasher, właśnie w tym rzecz. W momencie, gdy dziedziczysz, tworzysz klasę która opiera się na innej klasie, ma te same funkcje i wartości itd.
Jak już mówiłem, jeśli potrafisz kodzić, wiesz kiedy jedno ma sens, a kiedy drugie. To są dwie odrębne rzeczy i chociaż idealnie wpasowują się w Twój durny przykładzik, to w prawdziwym życiu nie ma tak łatwo.