Bonjour,

J'ai une question qui me taraude, je voudrais savoir exactement ce qui se passe lors de l'instanciation d'une classe. Je vais donner quelques exemples.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
class MyClass{
	public:
		int a;
		std::vector<int> * pVec;
}
 
 
void fonction
{
	// Je joue avec m1
	MyClass m1; // Appel au constructeur MyClass();
	m1.a = 43;
	m1.pVec = new std::vector<int>(1);
	(*m1.pVec)[0] = 314;
 
	// Je crée m2
	MyClass m2 = m1;
}
Lors de la construction de m2, que se passe-t-il exactement?
- Y a-t-il appel au constructeur implicit"? Suivi d'une (miraculeuse) copie de chacun des attributs?
- Ou alors, est-ce qu'il y a une allocation mémoire de la bonne taille, suivi d'une copie (aveugle) bit à bit des données?
- Autre chose?

Si vous avez un lien, je suis preneur, Google n'a pas été trop mon ami sur ce coup là...

Merci d'avance!