Salut!
Pour créer un tableau de 10 objets:
A t[10];
utilise le constructeur par défaut.
1)Comment avoir un tableau d'objets construits avec un autre constucteur?
Ce code:
affiche:
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
20
21
22
23
24 #include <iostream> class A{ public:A(){std::cout<<"default constructor"<<std::endl;} public:A(A const &a){std::cout<<"copy constructor"<<std::endl;} public:A& operator=(A const &a){std::cout<<"assignement operator"<<std::endl;} }; A f(A a){ std::cout<<"f"<<std::endl; A c; return c; } int main(void){ A a; A b=f(a); system("pause"); return EXIT_SUCCESS; }
-la première ligne correspond à la construction de "a";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 default constructor copy constructor f default constructor
-la deuxième à sa recopie lors du passage en paramètre;
-la quatrième à la construction de "c".
2)Mais pourquoi n'y a t'il pas à la suite un appel au constructeur par recopie lors de la création d'un objet temporaire au retour de la fonction?
Est-ce une optimisation?
3)Pourquoi n'y a t'il pas d'appel au constructeur par recopie lors de la construction de "b"?
Merci.
Partager