Mostenirea implica regulile cunoscute din orice carte care trateaza limbajul C++:
- in cazul mostenirii publice, membrii publici si
protected mosteniti in clasa derivata isi pastreaza nivelul de acces iar
membrii privati sunt inaccesibili altfel decat prin intermediul eventualelor metode
publice din clasa de baza;
- in cazul mostenirii protected, membrii publici si
protected ai clasei de baza devin protected in clasa derivata, cei privati
fiind inaccesibili cu observatia anterioara;
- in cazul mostenirii private, membrii publici si
protected devin privati.
Daca avem urmatoarea situatie de mostenire multipla,
class X
{ public: char i;};
class Y
{ public: float i;};
class Z : public X, public Y
{
public:
long i;
};
ce se va initializa la succesiunea
….
z zed;
zed.i = 500;
….
?
Sau, in alte cuvinte, compilatorul va furniza warning la atribuirea zed.i = 18.21?