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:
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;
}
affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.