Bonjour,
décidemment, 2 ans de C# et je n'y comprend plus rien au c++
Prenons le code suivant:
Pourquoi est-ce que la dernière ligne ne compile pas?
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 struct Foo { Foo( const std::string & str ) { cout << str << endl; } }; void f( const std::string & str ) { cout << str << endl; } int main() { f( "test" ); // ok Foo( "test" ); //ok std::string test= "test"; f( test ); //ok Foo( test ); // erreur }
En plus mon compilateur (VS 2010) est complètement perdu, l'erreur qu'il me donne est sans rapport:il croit que j'essaie de redéfinir la variable test.error C2371: 'test' : redefinition; different basic types
Sauriez-vous me dire pourquoi cette dernière ligne ne compile pas?
Il me semblait que le cast en référence constante était automatique.
Partager