Cours 2 Flashcards
En l’absence de constructeur pour la classe
dérivée
Génération par C++ d’un constructeur par
défaut, qui initialise
* les parties héritées
* et les membres spécifiques à la classe dérivée
En l’absence de constructeur par copie
pour la classe dérivée :
– Génération par C++ d’un constructeur par
copie qui initialise :
* les parties héritées
* et les membres spécifiques à la classe dérivée
- En l’absence d’opération d’affectation pour la classe dérivée :
– Génération par C++ d’une surcharge de
l’opérateur = qui affecte
* les parties héritées
* et les membres spécifiques à la classe dérivée
En l’absence de destructeur, le langage génère
un destructeur avec un corps vide
Depuis C++11, qu’est ce qui est choisi àla place du constructeur de recopie en cas de copie d’un objet temporaire (sur le point d’être supprimé)
Constructeur par déplacement
C++11 introduit également quoi ?
le « sémantic move »
* la fonction std::move() retourne une rvalue référence (ie sur une xvalue)
* Même quand elle prend en paramètre une lvalue!
Rule of 3 (avant C++11) :
triplet constructeur par copie /
affectation /destructeur
Depuis C++11, Rule of 3 a été
remplacée par
Rule of 5 : Constructeur par copie / Constructeur par déplacement / Opérateur d’affectation par copie / Opérateur d’affectation par déplacement / Destructeur
Depuis C++11,Le concept de référence à un temporaire (ie à une xvalue) est introduit par la norme!
Syntaxe : && (mais on dit rvalue reference!)