Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: pekfos
Programowanie obiektowe, C++

Dziedziczenie wielobazowe

[lekcja] 15. Dziedziczenie wielobazowe, czyli wiele klas bazowych.

Dziedziczenie wielobazowe

Dziedziczenie wielobazowe (Zwane też wielodziedziczeniem, albo dziedziczeniem wielokrotnym) to takie dziedziczenie, w którym jest więcej niż jedna klasa bazowa. Klasy bazowe oddzielamy przecinkami i przy każdej podajemy sposób dziedziczenia.
C/C++
class D
    : public B1
    , public B2
    , B3
{ };
Tu klasa D dziedziczy publicznie po B1 i B2 oraz prywatnie po B3. Nie można dziedziczyć kilka razy po tej samej klasie
C/C++
class B { };

class D
    : B
    , B // Błąd
{ };
Opieranie projektów klas o dziedziczenie wielobazowe jest powszechnie uznawane za błąd projektowy. Niemniej, wszystko jest dla ludzi, o ile stosowane z rozwagą..

Przykład

C/C++
#include <iostream>

class A
{
public:
    virtual void a()
    {
        std::cout << "a" << std::endl;
    }
};

class B
{
public:
    virtual void b()
    {
        std::cout << "b" << std::endl;
    }
};

class AB
    : public A
    , public B
{ };

int main()
{
    AB ab;
    ab.a();
    ab.b();
}
a
b
Poprzedni dokument Następny dokument
Zabranianie dziedziczenia i przesłaniania To jest ostatni dokument.
Nie ma następnego dokumentu.