Bonjour,
Je débute en C++.
Je ne comprends pas pourquoi ce code affiche 1. Il me semble que le passage de paramètre créer une copie qui est utilisée dans la fonction. Mais dans ce cas, il s'agit d'une classe qui n'a pas de méthode copie. Comment la copie est-elle effectuée alors? Ou alors, je n'ai rien compris...
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>
 
using namespace std;
 
class A{
    public:
    int i;
};
 
void f(A a){
    a.i = 5;
    A b;
    b.i = 6;
    a = b;
}
 
int main()
{
    A x;
    x.i = 1;
    f(x);
    cout << x.i << endl; 
    return 0;
}
Merci