拷贝构造函数
其形参是本类的对象引用,其作用是使一个已经存在的对象(由拷贝构造函数参数指定的对象)去初始化一个新的同类对象。
系统默认一个拷贝构造函数,
默认的拷贝构造函数的功能是把初始值对象的每个数据成员值都复制到新建立的对象中。
class calssname
{ public :
类名(形参表); //构造函数
类名(类名 &对象名); //拷贝构造函数
};
类名::类名(类名 & 对象名) //拷贝构造函数的实现
{ 函数体
}
例如:
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx; Y=yy; } // 构造函数
Point( Point &P);
int GetX(){retrun x;}
int GetY () {return y}
private:
int X,int Y;
};
Point ::Point (Point &P)
{ X=P.x;
Y=P.y;
}
//构造函数在仓健对象时被调用,而拷贝构造函数有三种情况
1。 当一个类的对象去初始化该类的另一个对象时
int main(void)
{ Point A(1,2);
Point B(A);
cout<<B.GetX()<<endl;
return 0;
}
如果函数的形参是类的对象,调用函数是,进行形参和实参的结合时
void F(Point p)
{ cout<<p.GetX();
}
int main()
{ Point A(1,2);
F(A);
return 0;
}
3. 如果函数的返回值是类的对象,函数执行完成返回调用者时
Point g()
{ Point A(1,2)
return A;
}
int main()
{ Point B;
B=g();
return 0;
}