拷贝构造器
固定语法:
class 类名
{
类名(const 类名& 变量名){ //类名& 表示引用
...
}
};
eg: Girl
class Girl
{
Girl(const Girl& another){
...
}
};
实例
int main(int argc, char const *argv[])
{
Girl girl;//发生了普通构造
Girl girl2 = girl; //发生了拷贝构造
Girl girl3(girl2); //发生了拷贝构造
return 0;
}
拷贝构造器的本质:
由已存在对象,创建新的对象
新对象不是由构造器来构造的,而是由拷贝构造器来构造的。
#include <iostream>
using namespace std;
class Girl
{
public:
Girl(){
cout<<"构造器"<<endl;
};
~Girl(){
cout<<"析构器"<<endl;
};
Girl(const Girl& another){
cout<<"拷贝构造器"<<endl;
};
private:
int age;
};
int main(int argc, char const *argv[])
{
Girl girl; //普通构造
Girl girl2 =girl; //拷贝构造
Girl girl3(girl2);//拷贝构造
Girl girl4; //普通构造
girl4 = girl2;//未出发拷贝构造,这种叫运算符重载,用到了this指针
return 0;
}
/*
构造器
拷贝构造器
拷贝构造器
构造器
析构器
析构器
析构器
析构器
*/