Warum wird der Konstruktor copy aufgerufen, wenn wir ein Objekt als Argument als Wert an eine Methode übergeben

Ich bin neu in der C ++ - Programmierung, wenn ich einige C ++ - Programme mache, habe ich Zweifel, weshalb der Kopierkonstruktor aufgerufen wird, wenn ich ein Objekt als Argument als Wert an eine Funktion übergebe. Bitte sehen Sie meinen folgenden Code, dass ich ein Objekt der Klasse als Argument von Wert an eine Funktion display () übergebe, aber es Kopierkonstruktor aufruft und dann die Funktion display () steuert, aber ich verstehe, warum es so bitte hilft.

#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;
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage