什么时候调用拷贝构造函数
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