Remplacement de fonction en C++ expliqué

Publié: 2022-11-09

Table des matières

Qu'est-ce qu'une fonction ?

Une fonction est un morceau qui appartient à un code pour exécuter une tâche stipulée dans un programme. Il est important d'avoir des connaissances de première main sur l'héritage pour apprendre que la fonction de remplacement de l'implémentation de l'héritage est un mandat de cette fonction. Une fonction C++ est une collection d'instructions regroupées pour exécuter une tâche. Tous les programmes ont une fonction main(), et certains programmes ont des fonctions supplémentaires. La déclaration de fonction envoie le nom de la fonction, le type de retour et les paramètres au compilateur pour déterminer le corps de la fonction par la définition de la fonction. Une fonction peut être une procédure, une méthode ou une sous-routine, et toutes les fonctions C++ consistent en un en-tête et un corps.

Syntaxe d'une fonction C++ :-

type_retour nom_fonction(liste de paramètres) {

corps de fonction

}

Composants :-

  • Type de retour- Cela indique le type de valeur de retour de la fonction.
  • Nom de la fonction - Ceci représente le nom de la fonction qui constitue la signature de la fonction et la liste des paramètres.
  • Paramètres - Il s'agit d'un espace réservé pour la valeur renvoyée par la fonction. Lorsqu'une fonction est appelée, la valeur transmise au paramètre est appelée paramètre réel.
  • Corps de la fonction - Le corps de la fonction comprend la liste des instructions définissant la tâche de la fonction.

Comment appeler une fonction

Une fonction doit être invoquée ou appelée avant utilisation, après quoi le contrôle lui est transféré pour effectuer la tâche nécessaire. L'instruction return redonne ensuite le contrôle au programme principal. Les paramètres et le nom de la fonction doivent passer pour appeler une fonction. Les arguments peuvent être passés à une fonction de plusieurs façons lors de son appel. Les types d'appels sont les suivants : -

  • Appel par valeur
  • Appel par référence
  • Appel par pointeur

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Remplacement de fonction en C++

Le remplacement C++ est une idée par laquelle une fonction portant le même nom est définie. La fonction de classe de base en remplacement est redéfinie dans la classe dérivée, qui remplace la fonction de classe de base. L'implémentation du polymorphisme d'exécution peut également être définie comme un remplacement de fonction. Ici, le temps d'exécution du programme remplace la fonction.

Le remplacement de fonction permet aux programmeurs d'utiliser une fonction dans la classe enfant trouvée dans sa classe parent. Par conséquent, la classe enfant hérite de chaque membre de données et des fonctions membres trouvées dans la classe parent. Pour remplacer toute fonctionnalité de classe enfant, vous devez implémenter la substitution de fonction. Le remplacement de fonction fait référence à la création d'une nouvelle version de la fonction de classe parent dans la classe enfant.

Syntaxe pour implémenter la substitution de fonction en C++

Lorsque la même fonction définie à la fois dans la classe basée et la classe dérivée est appelée à l'aide de l'objet de la classe dérivée, elle exécute la fonction de la classe dérivée. Il s'agit d'une substitution de fonction en C++.

Ci-dessous se trouve la syntaxe la plus utilisée pour l'implémentation de la substitution de fonction en C++ :

// Programme C++ pour démontrer le remplacement de fonction

#include <iostream>

en utilisant l'espace de noms std ;

base de classe {

Publique:

annuler impression() {

cout << "Fonction de base" << endl;

}

} ;

classe Dérivée : public Base {

Publique:

annuler impression() {

cout << "Fonction dérivée" << endl;

}

} ;

int main() {

Dérivé dérivé1 ;

dérivé1.print();

renvoie 0 ;

}

Production

Fonction dérivée

Cela redéfinit la fonction de classe de base dans la classe dérivée. Par conséquent, le type de retour, les paramètres_fonction et le nom_fonction doivent être identiques pour obtenir le remplacement de la fonction.

Cours et articles populaires sur le génie logiciel

Programmes populaires
Programme exécutif PG en développement de logiciels - IIIT B Programme de certificat Blockchain - PURDUE Programme de certificat de cybersécurité - PURDUE MSC en informatique - IIIT B
Autres articles populaires
Salaire d'ingénieur cloud aux États-Unis 2021-22 Salaire d'AWS Solution Architect aux États-Unis Salaire d'un développeur backend aux États-Unis Salaire de développeur front-end aux États-Unis
Salaire de développeur web aux Etats-Unis Questions d'entretien de Scrum Master en 2022 Comment démarrer une carrière dans la cybersécurité en 2022 ? Options de carrière aux États-Unis pour les étudiants en génie

Fonctionnement de la substitution de fonction en C++

Les POO doivent permettre aux classes dérivées d'hériter des fonctionnalités de la classe parent. Le remplacement de fonction permet aux programmeurs de remplacer toute fonctionnalité d'une classe dans une classe dérivée spécifique. Ceci est particulièrement utile lorsqu'une classe enfant a besoin de sa variante de fonctionnalité.

Vous trouverez ci-dessous un exemple simple de remplacement de fonction en C++ pour votre meilleure compréhension :

#include <iostream>

en utilisant l'espace de noms std ;

classe parent_class

{

Publique:

impression vide virtuelle()

{

cout << "\nCeci est la méthode print()"

” de BaseClass” ;

}

} ;

classe classe_dérivée : public parent_class

{

Publique:

// Remplacement de fonction – nouvelle définition de

// méthode d'impression de la classe de base

annuler l'impression()

{

cout << "\nCeci est la méthode print()"

« de la classe dérivée » ;

}

} ;

// Code conducteur

int main()

{

obj de classe dérivée ;

obj.print();

}

Accéder à la fonction remplacée en C++

L'opérateur de résolution de portée est utilisé pour accéder à la fonction surchargée de la classe de base en C++. La fonction remplacée est également accessible en utilisant un pointeur de classe de base pour pointer vers un objet de la classe dérivée, puis appeler la fonction à partir du pointeur.

// Programme C++ pour accéder à la fonction remplacée

// dans main() en utilisant l'opérateur de résolution de portée ::

#include <iostream>

en utilisant l'espace de noms std ;

base de classe {

Publique:

annuler impression() {

cout << "Fonction de base" << endl;

}

} ;

classe Dérivée : public Base {

Publique:

annuler impression() {

cout << "Fonction dérivée" << endl;

}

} ;

int main() {

Dérivé dérivé1, dérivé2 ;

dérivé1.print();

// accède à la fonction print() de la classe Base

dérivé2.Base::print();

renvoie 0 ;

}

Production

Fonction dérivée

Fonction de base

L'instruction dans la syntaxe ; dérivé2.Base::print(); donne accès à la fonction print() de la classe Base.

Appeler la fonction remplacée à partir de la classe dérivée

Vous pouvez utiliser l'héritage pour modifier le comportement d'une fonction. Cependant, parfois, vous n'avez pas besoin de modifier ou de remplacer la fonctionnalité de la classe de base/parente. Au lieu de cela, plus de fonctionnalités doivent être ajoutées.

Vous trouverez ci-dessous un exemple d'utilisation de la fonction call overridden à partir d'une classe dérivée.

// Programme C++ pour appeler la fonction remplacée

// à partir d'une fonction membre de la classe dérivée

#include <iostream>

en utilisant l'espace de noms std ;

base de classe {

Publique:

annuler impression() {

cout << "Fonction de base" << endl;

}

} ;

classe Dérivée : public Base {

Publique:

annuler impression() {

cout << "Fonction dérivée" << endl;

// appelle la fonction remplacée

Base :: print();

}

} ;

int main() {

Dérivé dérivé1 ;

dérivé1.print();

renvoie 0 ;

}

Production

Fonction dérivée

Fonction de base

Dans ce programme, la fonction redéfinie a été appelée à l'intérieur de la classe Derived.

classe Dérivée : public Base {

Publique:

annuler impression() {

cout << "Fonction dérivée" << endl;

Base :: print();

}

} ;

Le code Base::print();, appelle la fonction remplacée dans la classe Derived.

Surcharge de fonction vs remplacement de fonction

Vous pouvez obtenir une surcharge de fonction au moment de la compilation, généralement effectuée dans les classes dérivées et de base. Il fournit plus d'une définition de fonction en modifiant la signature de chaque fonction, comme le type de données ou le type de retour des paramètres.

Le remplacement de fonction, d'autre part, peut être réalisé au moment de l'exécution. La classe de base en substitution est redéfinie dans la classe dérivée avec les mêmes paramètres et le même type de retour. Découvrons quelles autres caractéristiques rendent ces deux fonctions différentes.

Primordial Surcharge
Héritage Nécessite l'héritage de classe Ne nécessite pas d'héritage de classe
Signature de fonction Diffère dans la signature soit par le type soit par le nombre de paramètres. Les signatures de fonction restent les mêmes
Portée de la fonction Les fonctions ont une portée différente Possède la même portée
Comportement de la fonction Obligatoire lorsqu'une fonction de classe dérivée s'exécute différemment ou avec des fonctionnalités supplémentaires par rapport à la fonction de classe de base. Obligatoire lorsque des fonctions portant le même nom ont des comportements différents en fonction des paramètres donnés.

Conclusion

Le remplacement des fonctions en C++ permet d'économiser de l'espace mémoire et de maintenir la lisibilité et la cohérence de tout code. Cela aide également à rendre le code réutilisable facilement. Inutile de dire que la connaissance du remplacement des fonctions est une compétence importante à posséder si vous voyez un avenir pour vous-même dans la programmation.

Si vous souhaitez rejoindre un cours fiable et premium pour démarrer votre carrière dans ce domaine, vous pouvez vous inscrire au Master of Science in Computer Science de upGrad sur upGrad. Certains des points saillants de ce programme sont les suivants : -

  • Apprenez MERN Stack, Microservices, JavaScript, etc.
  • Apprentissage sain sur Cloud Labs
  • Expérimentez avec les outils utilisés sur Netflix, LinkedIn, Facebook, etc.
  • Maîtrisez plus de 10 outils et langages de programmation
  • Assistance aux étudiants 24h/24 et 7j/7

Comment se produit le remplacement de fonction ?

Le remplacement de la fonction C++ se produit via l'héritage, c'est-à-dire lorsqu'une classe hérite d'une autre classe. Lorsque la classe dérivée et la classe de base possèdent des fonctions membres ayant le même type de retour, le même nom et la même liste d'arguments, on parle de remplacement de fonction.

Quelle est la différence entre la surcharge de fonction et le remplacement de fonction en C++ ?

Le remplacement de fonction se produit lorsque les fonctions possèdent le même prototype dans les classes de base et dérivées. La surcharge de fonction est effectuée lorsque plusieurs fonctions portant un nom similaire existent dans une classe.

Quelles sont les fonctionnalités de la surcharge de fonctions en C++ ?

La surcharge de fonctions en C++ est principalement utilisée pour améliorer la lisibilité du code. Les programmeurs l'utilisent pour ne pas avoir à mémoriser de nombreux noms de fonctions. Les classes avec plusieurs fonctions, différents paramètres et le même nom sont appelées Overloaded.