同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或者拷贝是完全可行的,这个拷贝过程只需要拷贝数据成员,而函数成员是共用的。在建立对象时可用同一类的另一个对象来初始化该对象,这时所用的构造函数称为拷贝构造函数。也就是说当拿一个对象初始化另一个对象时,就会调动拷贝构造函数。
class Object
{
private:
int value;
public:
Object(int x=0):value(x)
{
std::cout<<"create obj:"<<this<<" "<<value<<std::endl;
}
~Object()
{
std::cout<<"destroy obj:"<<this<<" "<<value<<std::endl;
}
int Getvalue()
{
return value;
}
};
int main()
{
Object a(10);
Object x=a;//调用拷贝构造函数
Object b(a);//调用拷贝构造函数,该语句和上面这条语句是等价的
return 0;
}
任何一个类中有六种默认的缺省函数,分别如下:
class Object