Showing posts with label pointeri. Show all posts
Showing posts with label pointeri. 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?

Tuesday, December 15, 2015

Limbajul C. Sortarea unei liste

Este vorba despre o lista simplu inlantuita (LSI), ale carei noduri servesc drept container pentru valori numerice (numere intregi in cazul de fata). Sigur ca se poate obiecta ca e un efort inutil sa scrii cod pentru a sorta secvente de numere intregi folosind structuri, recte LSI. 

Exista varianta binecunoscuta de sortare folosind vectori sau tablouri monodimensionale drept container.

Totusi, structura fiind un tip de data definit de utilizator, este mai flexibila decat un tablou, fie si prin faptul ca un nod al listei, spre deosebire de elementul unui tablou, poate contine mai mult de o variabila de baza la un moment dat.

Ne putem imagina, de pilda, o LSI care stocheaza in fiecare nod trei intregi corespunzand unei date calendaristice: ziua, luna, anul.

Intr-un astfel de caz, LSI este optiunea naturala, in detrimentul celei cu tablouri.

Sortarea unei astfel de liste ar trebui gandita dupa urmatorul algoritm: