Exam 1 (module 2) Flashcards
État d’un objet
Valeurs de ses attributs ou
de l’information qu’il
contient.
Comportement d’un objet
Ensemble des opérations
que l’on peut effectuer sur
celui-ci.
Identité d’un objet
Deux objets peuvent être exactement dans le même état,
mais sont différents de part leur identité unique (adresse en mémoire)
Objet (définition)
Entité discrète qui existe dans le temps et dans l’espace.
Classe (définition)
-Abstraction qui n’existe que dans les programmes
-Représente un ensemble d’objets qui partagent une structure commune et un comportement commun
Qu’est-ce qu’une classe définit
Les opérations permises sur les objets de la classe et les états qu’ils peuvent prendre
2 synonymes d’objet
instance et occurrence
Qu’est-ce que l’interface d’une classe?
Elle contient principalement les déclarations de toutes les
opérations applicables sur les instances de cette classe et elle définit ce qui est vu de l’extérieur
L’interface d’une classe est dans quel fichier?
Le .h
Qu’est-ce que l’implémentation d’une classe?
Ce qui est caché à l’intérieur de la classe (le code qui réalise les opérations qui sont définies dans l’interface).
L’implémentation d’une classe est dans quel fichier?
le .cpp
(publique ou privé?) Les méthodes sont xxx et les membres sont xxx.
méthodes = publiques, membres/attributs = privés
Pourquoi mettre quelque chose dans la partie privée de la classe?
Pour pas que l’utilisateur puisse le changer et faire des erreurs
Rôle d’une classe
Assurer la validité de tous les objets créés à partir d’elle
Quand est-ce qu’un objet doit être valide?
De sa création à sa destruction
À quoi sert l’encapsulation
Ne pas permettre l’accès direct aux attributs d’un objet (il faut passer par un accesseur et un mutateur)
Problèmes possibles si les attributs ne sont pas contrôlés
➢Possibilité de non-initialisation.
➢Possibilité de mauvaise assignation.
(Pas de garantie sur la validité des données)
La visibilité d’une classe est XXXX par défaut
privée! (la norme est de la spécifier explicitement)
(Vrai ou faux) On peut accéder directement à des attributs privés
faux
Norme du cours sur le nom d’un membre/attribut
m_blablabla
Pour utiliser une classe qu’on a fait il faut inclure quoi dans le main?
include Classe.h
Rôle des méthodes
Contrôler l’assignation des valeurs sur les champs
C’est quoi “this”
Un pointeur vers l’objet courant
Quand on crée un objet, qu’est-ce qui doit être initialisée pour qu’il soit cohérent?
ses attributs (à l’aide du constructeur)
Caractéristiques d’un constructeur
-Méthode spéciale qui a le même nom que la classe
-Est automatiquement appelé à la création d’un objet de cette classe
-N’a pas de type de retour
-Ne retourne pas de valeur
Pourquoi on ne peut pas créer un objet et l’initialiser après
Parce qu’il y a un lapse de temps où il n’est pas valide
(Vrai ou faux) Il est impossible d’avoir plusieurs constructeurs dans une même classe.
Faux! Ça se peut
C’est quoi la surcharge de méthode et comment ça marche?
C’est faire plusieurs méthodes du même nom. Lorsqu’une fonction surchargée est appelée, le compilateur sélectionne la bonne fonction selon les arguments (nombre, type, ordre…)
Si on veut une classe date qui accepte les paramètres jour, mois et année, mais qui fonctionne aussi sans paramètre. Quel est le code dans le .h?
class Date
{
public:
Date(); //constructeur par défaut
Date(int p_jour, int p_mois, int p_annee);
…
}; //ya un ; à la fin quand .h!
Comment initialiser les membres d’une classe dans le constructeur?
Avec une liste d’initialisation :
Date::Date(int p_jour, int p_mois, int p_annee)
: m_jour(p_jour), m_mois(p_mois), m_annee(p_annee)
{
//ne pas les mettre ici avec des =
}
La commande suivante sert à quoi?
Date()= delete;
Déclarer explicitement qu’on veut pas de compilateur par défaut
Qu’est-ce qu’un destructeur?
-Une méthode particulière de la classe qui porte le même nom que la classe, mais est précédé par un tilde ~
-Est exactement le complément du constructeur
(Vrai ou faux) Le destructeur détruit l’objet
Faux! Il fait le ménage à l’intérieur avant la destruction.