什么时候调用拷贝构造函数
1. 调用函数时,实参是对象,形参不是引用类型
- 如果函数的形参是引用类型,就不会调用拷贝构造函数
#include "Human.h"
using namespace std;
//函数传值,会自动调用拷贝构造函数
//进行值传递的时候, 执行:Human man = h1;
void showMsg(Human man) {
man.description();
}
//如果函数的形参是引用, 不会调用拷贝构造函数
void showMsg1(const Human & man) {
//添加了const后,不可以调用没有const的成员函数
//man.setAddr((char*)"美国");
man.description();
}
//如果函数的形参是指针类型,不会调用拷贝构造函数
void showMsg2(const Human* man) {
man->description();
}
int main(void) {
Human h1;
//初始化调用拷贝构造函数
Human h2= h1

本文介绍了C++中拷贝构造函数在三个关键场景下被调用的情况:1) 当函数参数为非引用类型的对象时;2) 函数返回值为非引用类型的类对象;3) 在对象数组初始化列表中使用对象。注意,若形参为引用或返回值为引用,则不会触发拷贝构造函数。
最低0.47元/天 解锁文章
528

被折叠的 条评论
为什么被折叠?



