InformaticăliceuClasa 11mediu
Moștenirea în C++ - Clase Derivate
Cum să creezi ierarhii de clase folosind moștenirea. Include exemple practice cu clase de bază și derivate.
2 luni în urmă
0 vizualizări
30 minute
Moștenirea în C++
Ce este Moștenirea?
Moștenirea permite unei clase să preia atribute și metode de la o altă clasă.
- •Clasa de bază (părinte) - clasa din care se moștenește
- •Clasa derivată (copil) - clasa care moștenește
Sintaxă
1#include <iostream> 2#include <string> 3using namespace std; 4 5// Clasa de bază 6class Animal { 7protected: 8 string nume; 9 int varsta; 10 11public: 12 Animal(string n, int v) : nume(n), varsta(v) {} 13 14 void mananca() { 15 cout << nume << " mananca." << endl; 16 } 17 18 void afisare() { 19 cout << "Animal: " << nume << ", " << varsta << " ani" << endl; 20 } 21}; 22 23// Clasa derivată 24class Caine : public Animal { 25private: 26 string rasa; 27 28public: 29 Caine(string n, int v, string r) : Animal(n, v), rasa(r) {} 30 31 void latra() { 32 cout << nume << " latra: Ham ham!" << endl; 33 } 34 35 void afisare() { 36 cout << "Caine: " << nume << ", " << varsta << " ani, rasa " << rasa << endl; 37 } 38}; 39 40int main() { 41 Animal a("Generic", 5); 42 Caine c("Rex", 3, "Ciobănesc"); 43 44 a.afisare(); 45 a.mananca(); 46 47 cout << endl; 48 49 c.afisare(); 50 c.mananca(); // Moștenită de la Animal 51 c.latra(); // Specifică clasei Caine 52 53 return 0; 54}
Tipuri de Moștenire
1class Derivata : public Baza { }; // public 2class Derivata : protected Baza { }; // protected 3class Derivata : private Baza { }; // private (implicit)
| Tip moștenire | public în bază | protected în bază | private în bază |
|---|---|---|---|
| public | public | protected | inaccesibil |
| protected | protected | protected | inaccesibil |
| private | private | private | inaccesibil |
Apelarea Constructorilor
1class Baza { 2public: 3 Baza(int x) { cout << "Constructor Baza: " << x << endl; } 4}; 5 6class Derivata : public Baza { 7public: 8 Derivata(int x, int y) : Baza(x) { 9 cout << "Constructor Derivata: " << y << endl; 10 } 11};
Moștenire Multiplă
1class A { }; 2class B { }; 3class C : public A, public B { }; // Moștenește de la A și B
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
