logo

Héritage C++

En C++, l'héritage est un processus dans lequel un objet acquiert automatiquement toutes les propriétés et comportements de son objet parent. De cette manière, vous pouvez réutiliser, étendre ou modifier les attributs et comportements définis dans une autre classe.

En C++, la classe qui hérite des membres d’une autre classe est appelée classe dérivée et la classe dont les membres sont hérités est appelée classe de base. La classe dérivée est la classe spécialisée de la classe de base.


Avantage de l'héritage C++

Réutilisabilité du code : Vous pouvez désormais réutiliser les membres de votre classe parent. Il n’est donc pas nécessaire de définir à nouveau le membre. Donc moins de code est nécessaire dans la classe.

âge de Rihanna

Types d'héritage

C++ prend en charge cinq types d'héritage :

  • Héritage unique
  • Héritage multiple
  • Héritage hiérarchique
  • Héritage multiniveau
  • Héritage hybride
Héritage C++

Classes dérivées

Une classe dérivée est définie comme la classe dérivée de la classe de base.

caractère java en chaîne

La syntaxe de la classe dérivée :

|_+_|

Dans le cas ci-dessus, la fonction de la classe dérivée remplace la méthode de la classe de base. Par conséquent, l’appel à la fonction display() appellera simplement la fonction définie dans la classe dérivée. Si nous voulons invoquer la fonction de classe de base, nous pouvons utiliser l'opérateur de résolution de classe.

 int main() { B b; b.display(); // Calling the display() function of B class. b.B :: display(); // Calling the display() function defined in B class. } 

Héritage hybride C++

L’héritage hybride est une combinaison de plusieurs types d’héritage.

Héritage C++

Voyons un exemple simple :

 #include using namespace std; class A { protected: int a; public: void get_a() { std::cout &lt;&lt; &apos;Enter the value of &apos;a&apos; : &apos; &lt;&gt;a; } }; class B : public A { protected: int b; public: void get_b() { std::cout &lt;&lt; &apos;Enter the value of &apos;b&apos; : &apos; &lt;&gt;b; } }; class C { protected: int c; public: void get_c() { std::cout &lt;&lt; &apos;Enter the value of c is : &apos; &lt;&gt;c; } }; class D : public B, public C { protected: int d; public: void mul() { get_a(); get_b(); get_c(); std::cout &lt;&lt; &apos;Multiplication of a,b,c is : &apos; &lt; <a*b*c<< std::endl; } }; int main() { d d; d.mul(); return 0; < pre> <p>Output:</p> <pre> Enter the value of &apos;a&apos; : 10 Enter the value of &apos;b&apos; : 20 Enter the value of c is : 30 Multiplication of a,b,c is : 6000 </pre> <h2>C++ Hierarchical Inheritance</h2> <p>Hierarchical inheritance is defined as the process of deriving more than one class from a base class.</p> <img src="//techcodeview.com/img/c-tutorial/62/c-inheritance-7.webp" alt="C++ Inheritance"> <p> <strong>Syntax of Hierarchical inheritance:</strong> </p> <pre> class A { // body of the class A. } class B : public A { // body of class B. } class C : public A { // body of class C. } class D : public A { // body of class D. } </pre> <p>Let&apos;s see a simple example:</p> <pre> #include using namespace std; class Shape // Declaration of base class. { public: int a; int b; void get_data(int n,int m) { a= n; b = m; } }; class Rectangle : public Shape // inheriting Shape class { public: int rect_area() { int result = a*b; return result; } }; class Triangle : public Shape // inheriting Shape class { public: int triangle_area() { float result = 0.5*a*b; return result; } }; int main() { Rectangle r; Triangle t; int length,breadth,base,height; std::cout &lt;&lt; &apos;Enter the length and breadth of a rectangle: &apos; &lt;&gt;length&gt;&gt;breadth; r.get_data(length,breadth); int m = r.rect_area(); std::cout &lt;&lt; &apos;Area of the rectangle is : &apos; &lt;<m<< std::endl; std::cout << \\'enter the base and height of triangle: \\' <>base&gt;&gt;height; t.get_data(base,height); float n = t.triangle_area(); std::cout &lt;<\\'area of the triangle is : \\' << n<<std::endl; return 0; } < pre> <p>Output:</p> <pre> Enter the length and breadth of a rectangle: 23 20 Area of the rectangle is : 460 Enter the base and height of the triangle: 2 5 Area of the triangle is : 5 </pre></\\'area></m<<></pre></a*b*c<<>

Héritage hiérarchique C++

L'héritage hiérarchique est défini comme le processus consistant à dériver plus d'une classe à partir d'une classe de base.

Héritage C++

Syntaxe de l'héritage hiérarchique :

 class A { // body of the class A. } class B : public A { // body of class B. } class C : public A { // body of class C. } class D : public A { // body of class D. } 

Voyons un exemple simple :

ascii d'un en java
 #include using namespace std; class Shape // Declaration of base class. { public: int a; int b; void get_data(int n,int m) { a= n; b = m; } }; class Rectangle : public Shape // inheriting Shape class { public: int rect_area() { int result = a*b; return result; } }; class Triangle : public Shape // inheriting Shape class { public: int triangle_area() { float result = 0.5*a*b; return result; } }; int main() { Rectangle r; Triangle t; int length,breadth,base,height; std::cout &lt;&lt; &apos;Enter the length and breadth of a rectangle: &apos; &lt;&gt;length&gt;&gt;breadth; r.get_data(length,breadth); int m = r.rect_area(); std::cout &lt;&lt; &apos;Area of the rectangle is : &apos; &lt;<m<< std::endl; std::cout << \\'enter the base and height of triangle: \\' <>base&gt;&gt;height; t.get_data(base,height); float n = t.triangle_area(); std::cout &lt;<\\'area of the triangle is : \\' << n<<std::endl; return 0; } < pre> <p>Output:</p> <pre> Enter the length and breadth of a rectangle: 23 20 Area of the rectangle is : 460 Enter the base and height of the triangle: 2 5 Area of the triangle is : 5 </pre></\\'area></m<<>