Référence et durée de vie
Bonjour,
Voici un mini programme de test:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream>
class A{
public:
A(){
std::cout<<"constructor"<<std::endl;
}
A(const A&b){
std::cout<<"copy"<<std::endl;
}
};
A fct(){
A myClass;
return myClass;
}
int main()
{
const A &myResult = fct();
return 0;
} |
Result: "constructor".
Est-ce que ce programme est correcte ?
Dans la fonction 'fct', je crée une variable 'myClass' qui a une durée de vie égale à la fonction.
Je récupère sa référence dans myResult. Cette référence, est-elle encore correcte une fois l'appel à 'fct' terminée ?
Merci d'avance.