Bonjour,
je suis tombé sur ce problème récemment, alors je vous le propose sous forme d'exercice. Je vous préviens, c'est tordu (en plus j'ai rajouté du bruit).
Q1: qu'affiche le programme suivant?
Q2: pourquoi?
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
25
26
27
28
29 #include <iostream> #include <string> #include <vector> using namespace std; struct Foo { Foo( const string & name = "n/a" ) : name(name) {} string name; }; int main() { vector<Foo> fooes; fooes.push_back( Foo( "first foo" ) ); Foo & first_foo = fooes.back(); Foo & second_foo = first_foo; fooes.emplace_back( Foo( "second foo" ) ); second_foo = fooes.back(); cout << "foo1: " << first_foo.name << endl; cout << "foo2: " << second_foo.name << endl; getchar(); return 0; }
Partager