Jestem nowy w programowaniu C++, kiedy robię niektóre programy w C++ mam wątpliwości, dlatego konstruktor kopiowania jest wywoływany, gdy przechodzę obiekt jako argument przez wartość funkcji. Proszę zobaczyć mój poniższy kod w tym, że przekazuję obiekt klasy jako argument przez wartość do funkcji display(), ale wywołanie konstruktora kopiowania, a następnie sterowanie uderza w funkcję display(), ale rozumiem, dlaczego tak jest, proszę o pomoc.dlaczego kopiować konstruktor jest wywołanie, gdy przekazujemy obiekt jako argument przez wartość do metody
#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;
}