Ich bin neu in C++ - Programmierung, wenn ich einige C++ - Programme habe ich einen Zweifel, warum Kopie Konstruktor aufgerufen wird, wenn ich passiere ein Objekt als Argument nach Wert für eine Funktion. Bitte beachten Sie meinen unten stehenden Code, indem ich ein Objekt der Klasse als Argument nach Wert an eine Funktionsanzeige übergebe(), aber das Aufrufen des Kopierkonstruktors und dann der Steuerung trifft die display() -Funktion, aber ich verstehe, warum es so bitte hilft.Warum kopieren Konstruktor ist Aufruf, wenn wir ein Objekt übergeben als Argument nach Wert zu einer Methode
#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;
}