(1)当用类的一个对象去初始化该类的另一个对象时。
#include<iostream>
#include<cstring>
using namespace std;
class employee{
public:
employee(){}
employee(string n,string a,string c,string p); //构造函数
employee (employee &e);
void display();
~employee(){cout<<"析构"<<endl;}
private:
string Name;
string address;
string city;
string postcode;
};
void employee::display()
{
cout<<"下面显示各属性:"<<endl;
cout<<"姓名:"<<Name<<endl;
cout<<"街道地址:"<<address<<endl;
cout<<"城市:"<<city<<endl;
cout<<"邮编:"<<postcode<<endl;
}
employee::employee(string n,string a,string c,string p) //构造函数的实现(初始化对象)
{
cout<<"employee constructor"<<endl;
Name=n;
address=a;
city=c;
postcode=p;
}
employee::employee(employee &e)
{
cout<<"copy constructor"<<endl;
Name=e.Name;
address=e.address;
city=e.city;
postcode=e.postcode;
}
int main()
{
employee b("li Hua", "HaiDian", "Beijing", "100084");
employee e=b; //此时调用复制构造函数
e.display();
return 0;
}
employee e(b);同样能够实现对另一个类初始化,两者只是写法有所不同
因篇幅问题不能全部显示,请点此查看更多更全内容