关于C++构造函数与复制构造函数的调用的问题
发布网友
发布时间:2023-10-11 04:40
我来回答
共2个回答
热心网友
时间:2024-11-16 19:02
void f(A s) :
void f(A& s):
主要看形参,第一个形参是一个对象,调用f(da)的时候需要从 实体对象da拷贝一份给形参A,所以会调用拷贝构造函数。
第二个形参是对象的引用,调用f(da),则相当于形参A只是da的一个别名而已,引用应该懂吧?所以不会调用构造函数。
热心网友
时间:2024-11-16 19:03
不就是拷贝函数执不执行的问题吗,第二个用了引用,所以不执行,第一个不是引用,所以会进行拷贝。
补充一下,函数内部s1 = s不会调用拷贝,因为只是指针操作,就是使s1和s指向同一个内存对象,这是不提倡的写法,会导致内存泄漏。