Classe abstraite en C++

En C++, une classe avec une fonction virtuelle pure est appelée une classe abstraite. Par exemple, la fonction suivante est une fonction virtuelle pure:

virtual void myFunction() = 0;

 
 
Une fonction virtuelle pure est marquée avec le mot clé virtual et l’affectation (=0) après sa signature. Vous pouvez appeler cette fonction une fonction abstraite car elle n’a pas de corps. La classe fille doit implémenter toutes les fonctions virtuelles pures de la classe parente, sinon elle deviendra une classe abstraite par défaut.
Fonction virtuelle pure C++Fonction virtuelle pure en C++Parfois, l’implémentation de toutes les fonctions ne peut pas être fournie dans une classe de base car nous ne connaissons pas l’implémentation. Par exemple, supposons…Lire plus Les interfaces en C++ sont implémentées à l’aide des classes abstraites et ces classes abstraites ne doivent pas être confondues avec l’abstraction de données, concept qui consiste à conserver les détails de l’implémentation séparément des données associées.
Abstraction en C++Abstraction en C++L’abstraction est l’une des fonctionnalités de Programmation Orientée Objet – POO, dans laquelle vous affichez uniquement les détails pertinents à l’utilisateur et masquez les détails…Lire plus  
 

Exemple: Classe abstraite en C++
#include <iostream> 

using namespace std; 

// Classe abstraite
class A 
{
	public:
		 virtual void show1()=0; //Fonction virtuelle pure
		virtual void show2()=0; //Fonction virtuelle pure

		void show3()
		{
			cout << " C'est la méthode show3 de la classe mére" << endl;
		}
};

class B : public A
{
	public:
		void show1()
		{
			cout << " C'est la méthode show1 de la classe fille" << endl;
		}

		void show2()
		{
			cout << " C'est la méthode show2 de la classe fille" << endl;
		}
};

int main()
{
	B b;
	b.show1();
	b.show2();
	b.show3();
	return 0;
}

La sortie :
 

 

Les règles de classe abstraite
  • Les classes abstraites sont utilisées pour représenter des concepts généraux (par exemple, Forme, Animal), qui peuvent être utilisés comme classes de base pour des classes concrètes (par exemple, Cercle, Chien).
  • Aucun objet d’une classe abstraite ne peut être créé.
  • Les types abstraits ne peuvent pas être utilisés en tant que types de paramètres, ou en tant que types de retour de fonction.
  • Les pointeurs et les références vers une classe abstraite peuvent être déclarés.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *