Dziedziczenie po kilku klasach - zagrożenie
Ostatnio zmodyfikowano 2014-05-03 15:46
kamil010 Temat założony przez niniejszego użytkownika |
Dziedziczenie po kilku klasach - zagrożenie » 2014-05-03 00:16:02 Witam. Jakie są zagrożenia dziedziczenia po dwóch (lub więcej) klasach mających tą samą klasę bazową. Jak zapobiec tym zagrożeniom? Ponoć jest to związane z pamięcią, wycieki czy co, mógłby mi ktoś wyjaśnić? Pozdrawiam |
|
pekfos |
» 2014-05-03 11:30:42 Jak nie wiesz, co robisz, to i wiązanie butów jest zagrożeniem. |
|
Saluter |
» 2014-05-03 13:33:31 The diamond problem - to chyba główny problem jaki można spotkać. Zagrożeniem tu jest możliwa niejednoznaczność. Rozwiązaniem może być dziedziczenie wirtualne. class A { public: int i; };
class B : public virtual A { };
class C : public virtual A { };
class D : public B , public C { public: void print() { std::cout << i; } };
Jednak najlepiej unikać tworzenia takich hierarchii i to powinien być najlepszy sposób na zapobieganie takim zagrożeniom. Jak wiesz co robisz, to i wiązanie butów nie jest zagrożeniem :) |
|
kamil010 Temat założony przez niniejszego użytkownika |
» 2014-05-03 15:46:00 A jeśli mam klasę A po której dziedziczy klasa B i C, natomiast po klasie B dziedziczy klasa D, a klasa E dziedziczy po klasie D i C to słowo "virtual" ma być przy definicji których klas, bo się zamotałem. Jeśli dodam virtual przy definicji klasy B, C i D to program się kompiluje, ale nie wiem czy działanie będzie poprawne. |
|
« 1 » |