sono nuovo alla programmazione in C++, quando sto facendo alcuni programmi in C++ ho un dubbio che è il motivo per cui il costruttore di copie viene chiamato quando passo un oggetto come argomento per valore di una funzione. per favore vedi il mio codice qui sotto nel senso che sto passando un oggetto di classe come argomento per valore a una funzione display() ma chiama costruttore di copia e poi controllo sta colpendo la funzione display() ma sto capendo perché è così, per favore, aiutare.perché il costruttore di copia è chiamato quando passiamo un oggetto come argomento per valore a un metodo
#include "stdafx.h"
#include <iostream>
using namespace std;
class ClassA
{
private:
int a, b;
public:
ClassA()
{
a = 10, b = 20;
}
ClassA(ClassA &obj)
{
cout << "copy constructor called" << endl;
a = obj.a;
b = obj.b;
}
};
void display(ClassA obj)
{
cout << "Hello World" << endl;
}
int main()
{
ClassA obj;
display(obj);
return 0;
}