Constructeurs et destructeurs C ++

Constructeurs et destructeurs C ++
En C ++, le constructeur est une caractéristique forte d'une classe. Nous savons qu'en C ++, nous avions l'habitude de faire diverses classes. Dans les classes, nous l'utilisons pour faire une fonction. Le constructeur est donc un type spécial de fonction membre.

Destructor est également fonction d'une classe en C++. Comme le destructeur du constructeur a également des fonctionnalités spéciales. Maintenant, nous discutons à la fois du constructeur et du destructeur dans notre sujet.

Caractéristiques de base du constructeur:

  1. Le constructeur a une fonctionnalité unique: le nom de la classe et le nom du constructeur doivent être les mêmes.
  2. Le constructeur n'a aucun type de retour comme fonction normale. Nous ne pouvons donc pas utiliser de mot-clé de retour dans le constructeur.
  3. Le constructeur se comporte comme une fonction, mais il diffère d'une fonction normale.

Maintenant, nous écrivons un programme, comment faire un constructeur dans une classe.

Exemple de programmation 1:

#inclure
Utilisation de Namespace Std;
complexe de classe

privé :
int x, y;
public :
Complex () // créer un constructeur à l'intérieur de la classe.

couter<< “ Example of a Constructor \n ” ;

;
int main()

Complexe com;
retour 0;

Sortir:

Explication:

Ici, nous créons une classe nommée complexe. Nous déclarons deux variables, X et Y, sous le modificateur d'accès privé. Ensuite, nous créons un constructeur dans un modificateur public similaire au nom de la classe. Ici, nous n'écrivons aucun mot clé de retour pour le constructeur.

Le constructeur est appelé implicitement. Lorsqu'un objet obtient un constructeur de mémoire s'exécutera par défaut.

Classification du constructeur:

Il existe trois types de constructeurs disponibles en C++. Ils sont

  1. Défaut.
  2. Paramétré.
  3. Copie.

un. Constructeur par défaut:

Chaque fois que nous ne créons aucun constructeur pour une classe et créons un objet pour cette classe, le constructeur est implicitement appelé par le compilateur. Ce type de constructeur est appelé constructeur par défaut. Il a une fonctionnalité spéciale. Il n'y a pas de code à l'intérieur de son corps, et il ne prend aucun paramètre.

Exemple de programmation 2:

#inclure
Utilisation de Namespace Std;
complexe de classe

Privé :
int a, b;
public :
;
vide main ()

Complexe com;

Sortir:
Comme ce programme n'a aucune instruction de sortie, il n'a aucune sortie.

Explication:

Ici, nous créons un complexe de classe. À l'intérieur de la classe complexe, nous ne créons aucun constructeur. Mais à l'intérieur du main (), lorsque nous créons un objet nommé com, le compilateur crée un constructeur par défaut dans le fichier d'objet. Il est appelé le constructeur par défaut. Ce type de constructeur n'a pas de codage à l'intérieur de son corps.

b. Constructeur paramétré:

Si nous voulons passer des arguments à l'intérieur du constructeur, il est appelé constructeur paramétré.

Exemple de programmation 3:

#inclure
Utilisation de Namespace Std;
complexe de classe

privé :
int a, b;
public :
Complexe (int x, int y) // créer un constructeur paramétré.

a = x;
b = y;
couter<< “ The values of a and b are”
<;
int main()

COM complexe (3, 4);
retour 0;

Sortir:

Explication:

Le code ci-dessus est un exemple de constructeur paramétré. Ici, nous passons deux entiers comme arguments x et y à l'intérieur du constructeur complexe. Si nous passons certaines valeurs comme 3 et 4 à l'intérieur de l'objet com en tant que com (3, 4) de la fonction principale, cette valeur va au constructeur.

c. Copier le constructeur:

Lorsqu'un objet de classe est copié dans un autre objet de la même classe, il est appelé un constructeur de copie. Cela signifie que les deux objets détiennent la même valeur de la même classe.

Exemple de programmation 4:

#inclure
Exemple de classe

int x, y;
public :
Exemple (int a, int b) // Créez un constructeur à l'intérieur de la classe.

x = a;
y = b;

vide affiche ()

couter << “ The values are : ”
<< x << “ and” << y ;

;
vide main ()

Exemple EX1 (50, 60);
Exemple Ex2 = com1;
ex2.afficher() ;

Sortir:

Explication:

Ici, nous créons un complexe de noms de constructeurs paramétrés. EX1 est un objet de l'exemple de classe. Grâce à l'objet EX1, nous passons deux valeurs, 50 et 60. Dans Display (), la sortie sera affichée à 50 et 60.

Maintenant, nous copie la valeur d'EX1 sur un autre objet, Ex2. Le résultat sera le même si nous appelons la fonction affichage () via l'objet EX2.

Destructeur:

Un destructeur est une autre caractéristique puissante comme le constructeur d'une classe. Son nom sera le même que le nom de la classe que nous l'avons vu dans le constructeur précédemment. Mais un symbole appelé Tilde (~) est séparé un destructeur d'un constructeur en codage.

Il n'a pas non plus de type de retour en tant que constructeur et ne peut jamais être statique.
La principale différence entre le constructeur et le destructeur est que le destructeur ne prend aucun argument comme le constructeur. Cela signifie que la surcharge n'est pas possible dans le cas d'un destructeur.

Exemple de programmation 5:

#inclure
Utilisation de Namespace Std;
complexe de classe

privé :
int a, b;
public:
~ Complex () // Créez un destructeur à l'intérieur de la classe.

couter<< “ Example of a Destructor\n ” ;

;
void fun ()

Complexe des; // Création de l'objet de la classe

int main()

amusant() ;
retour 0;

Sortir:

Explication:

Ici, nous créons un complexe de noms de destructrice sous la classe complexe. Maintenant, nous devons savoir quelle est la raison pour laquelle nous utilisons le destructeur. Le destructeur est invoqué implicitement par le compilateur lorsqu'un objet détruira. C'est une idée fausse que les destructeurs détruisent la mémoire de l'objet. Le fait est que le destructeur est la dernière méthode qui fonctionne. Après que cet objet est sûr d'être détruit, ce qui signifie dans main () lorsque le plaisir () est exécuté, l'objet doit être détruit.

Conclusion:

Après avoir discuté du concept de constructeur et de destructeur, nous conclurons que le constructeur et le destructeur sont des fonctions membres importantes de la classe en C++. Le constructeur et le destructeur améliorent très efficacement les caractéristiques de la classe.