Examen 1 - C++ général Flashcards
Association
La classe « A » utilise un objet de la classe « B ». Aucun attribut de la classe
ne fait référence à un objet de la classe « B » A ———> B
Agrégation
(ou composition faible)
La classe « A » possède un pointeur sur un objet de la classe « B » parmi ses
attributs mais n’est pas responsable de la destruction de celui-ci. En quelque
sorte, si la classe « A » disparait, la classe « B » ne disparaît pas.
Généralement, l’objet de la classe « B » est instancié à l’extérieur de la classe
« A » et est passé en paramètre à l’une des méthodes de la classe « A »
Composition
(ou composition forte)
La classe « A » possède un pointeur sur un objet de la classe « B » (ou l’objet
directement) parmi ses attributs et est responsable de la destruction de celui-ci.
En quelque sorte, si la classe « A » disparait, la classe « B » doit disparaître.
Généralement, l’objet de la classe « B » est instancié à l’intérieur de la classe
« A », souvent lors de la construction.
Classe :
structure regroupant les données (attributs ou membres) et les opérations
(méthodes) pour un concept donné. Exemple: un étudiant.
Attribut :
aussi appelée membre ou propriété d’une classe, l’attribut contient un élément
d’information d’une classe (dans une variable)
Méthode :
opération d’une classe, contenant du code. On évite les termes fonctions et
procédures.
Objet :
« instance » d’une classe, représentant un élément tangible. Par exemple, Fido est
un objet ou une instance de la classe Chien
public:
accessibles à l’extérieur et à l’intérieur de la classe. Souvent les méthodes getXYZ
(getters) sont publiques mais ce n’est pas obligatoire
protected
accessibles dans les classes dérivées (héritées) et à l’intérieur de la classe. Rarement
utilisé en général mais bien pratique pour les setXYZ (setters) afin de préserver les
validations qu’on souhaiterait réaliser.
private:
accessibles uniquement à l’intérieur de la classe.
En aucun cas, il n’est permis de modifier la valeur d’un attribut ailleurs que dans le set
correspondant sauf
si l’on utilise une liste d’initialisation.
.h (header)
Le fichier d ’en-tête contient à la déclaration de la classe. On y place le nom de la classe, les
modificateurs de visibilité, les déclarations des attributs et des méthodes. En général, on n’y place
pas de définitions (pas de corps de méthodes).
.cpp
Le fichier .cpp contient la définition de la classe. On y place les définitions des attributs statiques
ainsi que la définition (le corps) des méthodes.
std::stoi
convertir string en int
std ::cin
pour lire une valeur à la console
Enum
enum class Direction {
NORD,
SUD,
EST,
OUEST
};
Direction d = Direction::EST;
struct
En fait,
la seule différence entre un struct et class est que les attributs et méthodes d’un struct sont par
défaut public et non private.
utilité struct
On utilise généralement un struct pour représenter un enregistrement simple. En termes de
programmation, on utilise uniquement un fichier .h avec des attributs publics.
listes d’initialisation
Personne(const std::string& n, int a, double t, bool etudiant)
: nom(n), age(a), taille(t), estEtudiant(etudiant)
{
// Le corps du constructeur peut rester vide si toute l’initialisation
// est faite dans la liste d’initialisation
}
quand est appelé constructeur
Un constructeur est une méthode spéciale d’une classe qui est automatiquement appelée lors de la création d’un objet de cette classe. Son rôle principal est d’initialiser les membres de l’objet et d’allouer les ressources nécessaires.
quand est appelé destructeur
Un destructeur est une méthode spéciale d’une classe qui est automatiquement appelée lorsqu’un objet de cette classe est détruit. Son rôle principal est de libérer les ressources allouées par l’objet et d’effectuer les opérations de nettoyage nécessaires.
Situations d’appel du destructeur
Lorsqu’un objet local sort de sa portée.
Lors de l’utilisation de l’opérateur delete pour un objet alloué dynamiquement.
À la fin du programme pour les objets globaux ou statiques.
Lorsqu’un objet temporaire est détruit.