.begin et recopie d'objets
Bonjour :)
J'ai créée une classe Wall qui contient un vecteur de vecteur d'objet "Brick" et une methode getConstWall() qui me retourne la référence du vecteur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Wall::Wall(int numberW, int numberH, string path, int brickWidth, int brickHeight)
{
for(int i=0; i < numberH; i++)
{
wall.push_back(vector<Brick>());
for(int j=0; j < 1; j++)
{
wall.front().push_back
(
Brick(path, (brickWidth*j) + (brickWidth/2) , (brickHeight*i) + brickHeight/2, brickWidth, brickHeight)
);
}
}
}
const vector<vector<Brick> >& Wall::getConstWall() const
{
return wall;
} |
Dans une autre classe je fais un appel à cette méthode pour récupérer un itérateur dessus:
Code:
1 2 3 4
|
cout << "==== Debut ===" << endl;
vector< vector<Brick> >::iterator itV = ((vector< vector<Brick> >)game.getConstBoard().getConstWall().getConstWall()).begin();
cout << "=== Fin ===" << endl; |
Or j'observe qu'a chaque appel de l'itérateur j'ai de multiples appels aux destructeurs des bricks (J'ai fait un print dans chaque destructeurs):
Je ne comprend pas pourquoi l'appel à la methode bgin provoque une recopie de mes objets? Je pourrais bien sur initialiser dynamiquement mes Briques mais je me demande si il n'y à pas une autre solution?
Merci d'avance de vos réponses.