niedziela, 29 sierpnia 2010

Dziedziczenie prywatne w C++

Dziedziczenie prywatne nie jest zbyt często wykorzystywane w programowaniu, jednakże jest ono możliwe, pewnie z chęci podrzymania niejako 'kompletności' języka. Dzisiejsza zagadka będzie dotyczyła właśnie tego mechanizmu.

Mamy następujący kod:

class Bazowa {
        public:
                int a;
};
class Dziecko : private Bazowa {
                // MODYFIKACJA
};
int main() {
        Dziecko a;
        a.a=5;
        cout << a.a << "\n";
        return 0;
}

Polega ona na podaniu przynajmniej dwóch takich modyfikacji wskazanego miejsca, aby kod skompilował się i działał.

Miłej zabawy.

4 komentarze:

  1. Można napisać w przestrzeni publicznej nową zmienną:
    int a;

    Można też użyć deklaracji dostępu using:
    using Bazowa::a;

    OdpowiedzUsuń
  2. Using nie jest konieczny, wystarczy
    Bazowa::a;

    Prócz tego można zaprzyjaźnić się z main:
    friend int main();

    Lub jak zwykle wszystko można popsuć dyrektywami preprocessora:
    #define Dziecko Bazowa

    :-)

    OdpowiedzUsuń
  3. Nie mogłem znaleźć twojego e-maila ale chciałem podziękować za pakiety do Archa, odwalasz kawał dobrej roboty :)

    PS opis do nowego kadu nie powinien zawierać również info o obsłudze jabbera?

    OdpowiedzUsuń
  4. Panie Mateuszu,
    czy mogłabym prosić o prywatny kontakt?
    Mam dla Pana propozycję.
    beata.poltorak@talso.pl
    664453065

    Pozdrawiam,
    Beata Półtorak

    OdpowiedzUsuń