? Langages de programmation orientés objet tels que C + + ("C Plus Plus » ou RPC) suivent un paradigme de programmation orientée vers la réutilisation du code et construire des hiérarchies structurelles dans ce code. Les développeurs créent des classes pour encapsuler les données de fonctionnalité en morceaux logiques. Ils le font aussi parce que certaines techniques de programmation orientée objet , telles que l'héritage , permettent de construire des classes plus complexes à partir de simples. Les développeurs peuvent également contrôler la façon dont les classes sont mises en œuvre à l'aide de classes de modèles de conception appelées « interfaces » ou « classes abstraites » qui déterminent la façon dont les autres programmeurs utilisent ces classes. Objets et Héritage Lors de la création des classes et des objets pour un programme en C + + , le programmeur découvre souvent que les différentes classes se chevauchent ou partager des fonctionnalités similaires. Elle a alors deux choix : écrire le code fonctionnel pour les deux classes , ou créer une classe de "base" avec tous les traits communs et les caractéristiques de ces classes. Ensuite, les deux classes peuvent «inhérents» ces traits tout en ajoutant leur propre . Par exemple, si le programmeur écrit «associé» et les classes " Manager " pour une application d'entreprise , elle pourrait créer une seule catégorie «employé» qui contient les fonctionnalités communes et entre collaborateurs et managers. < br > Virtual Fonctions classe de base pour n'importe quelle autre classe peut contenir des définitions de ce que les classes peuvent le faire . et quelles sont les informations qu'ils contiennent. Ainsi, la classe des employés de l'exemple peut contenir une fonction pour calculer salaire qui contient une formule spécifique. Le gestionnaire et les classes associés inhérente de cette fonction, et donc la formule. Toutefois, les gestionnaires et les associés peuvent nécessiter formule différente pour calculer salaire. Dans ce cas, la classe de base doit contenir une fonction «virtuelle» . La classe de base permettrait de définir un comportement par défaut , mais les classes de l'enfant pourrait alors créer leurs propres formules et fonctions en cas de besoin . Classes abstraites côté virtuel fonctions , il ya des fonctions virtuelles "purs" . Fonctions virtuelles pures ne contiennent une définition de fonction . Au contraire, ils définissent simplement un nom de fonction . Ainsi, par exemple , la fonction de calcul des salaires dans la classe Employé de base serait déclarée comme virtuelle sans définition . Ensuite , les classes de gestionnaire et associé définiraient leurs propres fonctions pour calculer salaire. Quand une classe contient une ou plusieurs fonctions purement virtuels , il est appelé une classe abstraite. C'est parce que les classes avec des fonctions virtuelles pures ne peuvent pas devenir des objets . Le C + + Interfaces Depuis classes abstraites ne peuvent pas devenir des objets , ils sont appelés « interfaces ». Interfaces sont classes abstraites , contenant souvent que des fonctions virtuelles pures qui servent de modèle pour les autres classes communes . Donc, si l'exemple de l'employé ne contient que des fonctions virtuelles pures , alors le programmeur conçoit le gestionnaire et les classes associés à la succession de l'employé comme une interface, ce qui signifie qu'ils doivent mettre en œuvre les fonctions virtuelles pures de la classe Employee . Alors que l' ISO C + + standard ne contient pas un mot clé spécifique «d'interface» , la mise en œuvre de Microsoft C + + ne (Source 3). Voici un exemple pour illustrer ce relationship.class Employee { du public : virtual int calcSalary () = 0; //virtuelle pure fonction privé : int ID ;} ; class associé : Fonctionnaire publique { publique : int calcSalary () { //Associate * doit * mettre en œuvre calcSalary ou obtenir un code d'erreur /d' * * /}};
|