生成两个完全相同的对象有两种方法,第一种就是将已有的对象的数据成员(member或称属性)取出来,一一赋值给新的对象。第二种方法就是使用复制构造函数,让类具有自行复制本类对象的能力。
复制构造函数:具有一般构造函数的所有特性,形参是本类的对象的引用。作用是使用一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个新对象。
个人理解:构造函数是用于创建一个类的新的对象。而复制构造函数就是复制一个已经存在的对象。(构造函数创建一个新的人,复制构造函数就是创建一个克隆人)。
#include<iostream>
using namespace std;
/*复制构造函数*/
//时钟类
class Clock{
public:
Clock(){ //无参构造函数实现-内联
hour=0;
minute=0;
}
Clock(int newH,int newM){//构造函数
hour=newH; //在类里的 函数中写了内容(即函数实现),就属于隐式内联函数
minute=newM;
}
Clock(Clock &c);//复制构造函数,类名(类名 &对象名);
int getH(){return hour;} //与上方 同理属于内联函数
int getM(){return minute;}
private:
int hour,minute;
};
//成员函数实现
Clock::Clock(Clock &c){//复制构造函数的实现
//没有在类中实现函数,也没有显示声明inline,所以不是内联函数
hour=c.hour;
minute=c.minute;
cout<<"调用了构造函数的复