i am new to C++ programming, khi tôi đang thực hiện một số chương trình C++ tôi đã nghi ngờ đó là lý do tại sao copy constructor được gọi khi tôi vượt qua một đối tượng làm đối số theo giá trị cho hàm. xin vui lòng xem mã dưới đây của tôi trong đó tôi đang đi qua một đối tượng của lớp như là một đối số theo giá trị cho một hàm display() nhưng nó gọi là constructor sao chép và sau đó điều khiển là nhấn display() chức năng nhưng tôi hiểu tại sao nó như vậy xin vui lòng giúp đỡ.lý do tại sao sao chép constructor gọi khi chúng ta truyền đối tượng như một đối số theo giá trị cho một phương thức
#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;
}