Constructeurs par défaut et constructeur par recopie.
Salut!:D
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:
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
| #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;
} |
affiche:
Code:
1 2 3 4
| default constructor
copy constructor
f
default constructor |
-la première ligne correspond à la construction de "a";
-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.