Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 10
C++ classe (résumé)
Une instance de classe peut être
Static Dynamique Un pointeur sur l'instance courante : this Des constructeurs Pour initialiser les attributs Différentes formes Sans paramètre
Avec paramètres
Constructeur copie pour cloner un autre objet
Jean GUILLET Langage orienté objet C++ 1/10
C++ classe (résumé 2) Constructeurs suite : Une liste d'initialisation avant le corps du constructeur Un destructeur unique Pour désallouer les zones mémoires allouées avec new Déclaré comme le constructeur et précédé de ~ Appelé explicitement par delete ou pour les instances statiques lorsqu'on quitte la portée de la déclaration Jean GUILLET Langage orienté objet C++ 2/10 Surcharge d'opérateur
Les opérateurs sont définis pour les
types simples Ils peuvent être redéfinis pour Les types complexes tels que les classes Modifier le comportement de l'opérateur Article unArticle; // Article unAutreArticle; unAutreArticle = unArticle;
Que doit réaliser la troisième ligne ?
Ce code est-il compilable ?
Jean GUILLET Langage orienté objet C++ 3/10
Surcharge d'opérateur (2) Syntaxe : type_retour operator op(const type &) ; par ex l'opérateur = de la classe Article Déclaration
Surcharge d'opérateur ex Définissez l'opérateur de comparaison d'article (Question 28) Donnez le prototype de la surcharge Écrivez le code de la surcharge correspondante Testez-la
Un opérateur surchargé est-il différent d'une méthode ?
Jean GUILLET Langage orienté objet C++ 5/10
Surcharge d'opérateur (3) Un opérateur surchargé pour une classe : A son opérande de gauche du même type que la classe Son opérande de droite passé en paramètre est Constant Une référence Renvoie le type correspondant à l'opérateur Pourquoi l'opérande de droite est-il constant ?
Jean GUILLET Langage orienté objet C++ 6/10
Surcharge avec opérande de gauche de type différent de la classe Vous disposez de la classe Article Nous voulons pouvoir calculer le prix
de n articles comme suit :
PrixTotal = unArticle * n; PrixTotal = n * unArticle; Qui à partir d'une instance de la classe
Article noté unArticle affiche sur la
sortie le prix de n articles Avec n < quantite
Définir la ou les méthodes correspondantes.
Jean GUILLET Langage orienté objet C++ 7/10 Les fonctions amies
Une fonction amie
Est nécessaire lorsque la partie gauche d'une méthode, d'un opérateur ne fait pas partie de la classe où on veut l'utiliser Permet d'accéder à toutes les caractéristiques de la classe en se trouvant hors de la classe Fournit l'accès aux attributs privés, publics à partir d'une autre classe
Jean GUILLET Langage orienté objet C++ 8/10
Fonctions amies Elle se définit comme une fonction habituelle (fonction externe à la classe) Elle se déclare à l'intérieure de la classe où on veut l'utiliser avec le mot clé friend Réalisez maintenant le code permettant de calculer le prix de n articles. Peut-on avec ce code effectuer le calcul suivant : PrixTotal = unArticle * n;
Répondez aux questions 29 et 30
Jean GUILLET Langage orienté objet C++ 9/10
Membres statiques d'une classe Ce sont des membres indépendants des instances de la classe Précédés lors de la déclaration du mot static Initialisé en dehors de la classe à l'aide de l'opérateur :: Permet de connaître par exemple le nombre d'instances d'une classe