Classe avec membres const dans un vecteur
bonjour, pardonnez mon intrusion,
sans c++11, comment est t-il possible de créer un vecteur d'une structure avec des membres constants sans passer par des pointeurs ?
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
| #include <vector>
struct S_Foo {
S_Foo( const float x ) : x( x ) {}
float x;
};
class C_Foo {//Marche sans soucis avec des classes
public:
C_Foo( const float x ) : x( x ) {}
const float X() const { return x; }
private:
float x;
};
int main() {
std::vector < C_Foo > cfootab;
cfootab.push_back( C_Foo(5));
cfootab[0].x = 3;// Erreur cfootab[0].x est "constant" (pas d'accès public)
std::vector < S_Foo > sfootab;
sfootab.push_back( S_Foo(5));// comment rendre sfootab[0].x constant ?
sfootab[0].x = 3;// modification possible de x
return 0;
} |
Merci par avance.