Showing posts with label clase de baza. Show all posts
Showing posts with label clase de baza. Show all posts

Tuesday, January 12, 2016

Limbajul C++. Mostenirea de clase si o problema un pic stranie

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?