Bonjour,

Je souhaitais savoir si l'utilisation de l'operateur egal "operator=" faisait bien appelle au constructeur de copie de vector.

Voici un exemple pour illustrer.

Si j'ai une classe Object contenant un membre de type vector:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
class Object
{
  Object(std::vector<double>& vect);
 
  std::vector<double> m_vect;
};
Object.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Object::Object(std::vector<double>& vect)
{
  m_vect = vect;
}
Ma question est la suivante, est-ce que m_vect = vect; suffit (allocation de m_vect + copie), ou dois-je allouer mon vector puis copier ensuite:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Object::Object(std::vector<double>& vect)
{
  m_vect = std::vector<double>(vect .size());
  m_vect = vect;
}
Merci de votre aide.