Clase Derivate

Seminar
10/10 (3 voturi)
Domeniu: Automatică
Conține 1 fișier: doc
Pagini : 8 în total
Cuvinte : 2046
Mărime: 12.58KB (arhivat)
Publicat de: Theodor Marginean
Puncte necesare: 0

Extras din seminar

Daca exista o ierarhie de clase derivate, atributele sunt mostenite prin aplicarea recursiva a regulilor din tabelul de mai sus. In esenta deci, atributul protected al unui membru al clasei face ca el sa fie vizibil intr-o clasa derivata cu specificatorii de acces public sau protected.

Trebui inteles ca un obiect de tipul DERIVATA este un obiect de tip BAZA, reciproca nefiind adevarata. Aceasta face ca un pointer de tipul:

DERIVATA *pd;

sa poata primi ca valoare o adresa de tipul & BAZA fara nici o conversie de tip.

Constructorul unei clase derivate se defineste astfel:

DERIVATA (lista argumente) : BAZA (lista argumente)

{

...

}

ceea ce inseamna ca se va apela intii constructorul clasei BAZA cu argumentele specificate. Unele argumente din apelul constructorului BAZA pot fi preluate din lista de argumente a clasei DERIVATA. Sa consideram exemplul definirii unor clase pentru gestiunea informatiilor despre studenti.

enum an_studii { unu, doi, trei, patru, cinci, graduate };

class student {

public:

student (char *, int, double, an_studii);

void print() const;

protected:

int student_id;

double medie;

an_studii an;

char nume[50];

};

Constructorul se defineste in mod evident:

student::student (char *n, int id, double m, an_studii i)

{

student_id = id;

medie = x;

an = i;

strcpy (nume, n);

}

O forma alternativa este:

student::student (char *n, int id, double m, an_studii i) :

student_id(id), medie(x), an(i) {

strcpy (nume, n);

}

ca si cum student_id, medie si an ar fi clase de baza ale clasei student (desi acestea sunt tipuri elementare).

Sa definim acum o clasa grad_student, bazata pe student:

class grad_student public student {

protected:

char titlu_teza[50];

char catedra[25];

public:

grad_student(char *, int, double, char *, char *);

void print() const;

};

care introduce cimpurile suplimentare titlu_teza si catedra, constructorul adecvat si redefineste (overloading) functia print. Ceilalti membri ai clasei de baza student sunt mosteniti ca atare. Constructorul clasei este de forma:

grad_student::grad_student(char *n, int id, double m, char *titlu, char *cat) :

student(n, id, m), an_studii(graduate) {

strcpy(titlu_teza, titlu);

strcpy(catedra, cat);

}

Preview document

Clase Derivate - Pagina 1
Clase Derivate - Pagina 2
Clase Derivate - Pagina 3
Clase Derivate - Pagina 4
Clase Derivate - Pagina 5
Clase Derivate - Pagina 6
Clase Derivate - Pagina 7
Clase Derivate - Pagina 8
Clase Derivate - Pagina 9

Conținut arhivă zip

  • Clase Derivate.doc

Alții au mai descărcat și

Rețele Neuronale cu Învățare Nesupravegheată de Tip Kohonen

Utilizarea RNA pentru rezolvarea unor probleme practice necesită parcurgerea, unei etape esenţiale - etapa de învăţare sau antrenare. În...

Grafuri. parcurgerea grafurilor. Sortarea topologică

Scop: Parcurgerea in latime se foloseste: - pentru Inteligenta Artificiala (metoda neinformata de cautare... mai multe la cursul de IA); -...

Automate și Microprogramare

Aplicatia consta în controlul unei macarale care trebuie sa realizeze cele 2 cicluri de miscare reprezentate în figura 5.1. Initial macaraua se...

Utilizarea Calculatorului

1. Numarul paginilor web existente este de ordinul a) Miilor b) Sutelor de milioane c) Milioanelor d) Miliardelor 2. Folosirea indecsilor web...

Tema 8 - hazarde structurale la procesoarele de tip pipeline - exemple reale și soluții

Pentru a creste performanta procesoarelor a fost dezvoltata tehnica “benzii de asamblare”, numita si pipeline. Majoritatea procesoarelor din zilele...

Arbori Binari

int nr_frunze_2(ARBORE a); /* determina numarul de frunze al unui arbore dat */ int *numar_desc(ARBORE a); /* determina numarul de noduri cu...

Te-ar putea interesa și

Pachete Software SAS-IML

CAPITOLUL I: INTRODUCERE ÎN LIMBAJUL SAS/IML 1.1Scurtă descriere a limbajului SAS/IML Acronimul IML este abrevierea expresiei “limbajul...

Clase, Clase Derivate, Constructori, Destructori - Programe POO

Constructori si destructori #include "conio.h" #include "iostream" using namespace std; class complex {private: double re; double im;...

C++

Un prim exemplu de program C++: #include <iostream.h> void main { int a; cout << "Dati un numar\n"; cin >> a; cout << "Ati tastat numarul "...

Curs Programare C++

Cap 1. Reprezentarea informaţiilor 1.1 Reprezentarea numerelor întregi în sistemul binar Un număr natural se reprezintǎ ca o colecţie de cifre....

Cursuri Java

Cuvinte importante: - concepte fundamentale ale programarii orientate obiect in Java: incapsulare, mostenire, polimorfism; - crearea claselor de...

Curs C++

Limbajele C si C++ sunt limbaje de programare de nivel înalt. Limbajul C a aparut în anii 1970 si a fost creat de Dennis Ritchie în...

Clase derivate. Moșteniri. funcții virtuale

CLASE DERIVATE.MOŞTENIRI.FUNCŢII VIRTUALE Derivarea claselor.Moşteniri Funcţii care nu se moştenesc integral Funcţii virtuale Derivarea...

Ai nevoie de altceva?