Bonjour tout le monde!!
J'ai un petit problème que je ne comprends pas . J'apprenais gentillement le C++ sur le tas et je décide de tester le pssage par référence et hop je me heurte à une erreure que je trouve bizarre .
test est un bête objet tout ce qu'il y a de plus quelconque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "test.h" test& f(test &x){ return x; } int main(){ test x(); f(x); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Erreur: main.cpp:14: error: invalid initialization of non-const reference of type 'test&' from a temporary of type 'test (*)()' main.cpp:6: error: in passing argument 1 of 'test& f(test&)'Process terminated with status 1 (0 minutes, 0 seconds)2 errors, 0 warnings
Après avoir expérimenté j'ai tenté le :
test x = new test();
et là ça marche ce qui ne m'étonne guère mais j'aurais bien voulu que l'autre marche aussi car je n'avais pas envie d'allouer dynamiquement l'objet test je voulais juste faire un petit objet static avec le constructeur que j'avais définis ...
Si vous aviez une explication ça m'aiderait beaucoup .
Bonne journée à tous !
Partager