Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dziedziczenie po kilku klasach - zagrożenie

Ostatnio zmodyfikowano 2014-05-03 15:46
Autor Wiadomość
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
P-109145
pekfos
» 2014-05-03 11:30:42
Jak nie wiesz, co robisz, to i wiązanie butów jest zagrożeniem.
P-109148
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.

C/C++
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 :)
P-109158
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.
P-109178
« 1 »
  Strona 1 z 1