当我将对象作为参数按值传递给函数时,为什么会调用复制构造函数?请看我下面的代码:我将一个类的对象作为参数按值传递给一个函数display()
,但它在控制击中函数之前调用了复制构造display()
函数。我不明白为什么。
#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;
}