Comment initialiser une classe membre d'une autre
Bonjour,
J'ai une classe Voiture qui contient des "Roue"s comme variables membres.
Je cherche à initialiser les instances des classes "Roue" dans le constructeur de Voiture.
J'ai trouvé une solution (voir ci-dessous le constructeur de Voiture), mais je trouve cette syntaxe un peu compliquée, il y a une autre syntaxe pour appeler les constructeurs de "Roue" ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include <iostream>
// Classe Roue
struct Roue {
private:
float nDiametre;
public:
Roue(float nDiametre) {
this->nDiametre = nDiametre;
}// Roue
float getDiametre() {
return nDiametre;
}
};// Roue
// Classe Voiture
struct Voiture {
Roue rAVG;
Roue rAVD;
Roue rARG;
Roue rARD;
static const float ncDiamParDefaut;
Voiture() :rAVG(ncDiamParDefaut),
rAVD(ncDiamParDefaut),
rARG(15),
rARD(15){
}// Voiture
void afficher() {
std::cout << " AVG = " << rAVG.getDiametre()
<< " AVD = " << rAVD.getDiametre()
<< " ARG = " << rARG.getDiametre()
<< " ARD = " << rARD.getDiametre() << std::endl;
}// afficher
};// Voiture
const float Voiture::ncDiamParDefaut = 12;// init de la constante
using namespace std;
int main(int argc, char* argv[])
{
Voiture voiture1;
voiture1.afficher();
return 0;
}// main |
A l'execution, ce programme donne bien :
Code:
1 2
|
AVG = 12 AVD = 12 ARG = 15 ARD = 15 |