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 {
-
- };
- int main() {
- Dziecko a;
- a.a=5;
- cout << a.a << "\n";
- return 0;
- }
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.
Można napisać w przestrzeni publicznej nową zmienną:
OdpowiedzUsuńint a;
Można też użyć deklaracji dostępu using:
using Bazowa::a;
Using nie jest konieczny, wystarczy
OdpowiedzUsuń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
:-)
Nie mogłem znaleźć twojego e-maila ale chciałem podziękować za pakiety do Archa, odwalasz kawał dobrej roboty :)
OdpowiedzUsuńPS opis do nowego kadu nie powinien zawierać również info o obsłudze jabbera?
Panie Mateuszu,
OdpowiedzUsuńczy mogłabym prosić o prywatny kontakt?
Mam dla Pana propozycję.
beata.poltorak@talso.pl
664453065
Pozdrawiam,
Beata Półtorak