This is an old revision of the document!
Une classe dérivée :
Lors de la création d'un nouvel objet, nous avons deux phases :
Les constructeurs définis pour chacune des classes de base ne disposent pas des informations nécessaires pour pouvoir initialiser les champs dans la classe étendue.
Il est donc nécessaire de définir un nouveau constructeur qui va :
La syntaxe d'un constructeur d'une classe dérivée appelant les constructeurs de la classe de base est la suivante :
class Cloth { public: enum Size { S, M, L, XL, XXL, XXXL }; private: Size m_size; public: Size getSize() const { return m_size; } protected: Cloth(Size theSize): m_size(theSize) {} Cloth(const ClothBase& theSource): m_size(theSource.theSize) {} }; public class Pant: Cloth { private: unsigned m_length; public: Pant(Cloth::Size theSize, unsigned theLength): Cloth(theSize), m_length(theLength) {} Pant(const Pant& anotherPant): Cloth(anotherPant), m_lentgh(anotherPant.m_length) {} };