c++中拷贝构造函数问题

classPoint{Public:Point(intxx=0;intyy=0){X=xx;Y=yy;}point(point&p);intgetx(){returnX;... class Point
{
Public:
Point(int xx=0;int yy=0)
{
X=xx;
Y=yy;
}
point(point& p);
int getx()
{
return X;
}
int getY()
{
return Y;
}
Private:
int X,Y;
};
Point::Point(Point& p)
{
X=p.X;
Y=p.Y;
}

X=p.X;
Y=p.Y;
这两个语句是什么意思 ,有什么作用?
展开
 我来答
蕊七心浪衡o
2012-05-29 · TA获得超过155个赞
知道答主
回答量:28
采纳率:0%
帮助的人:46.3万
展开全部
X=p.X;
Y=p.Y;
这两个语句意思就是将拷贝对象P的X,Y的值赋值给本地对象的X,Y成员变量,达到利用已有对象给新对象直接赋值的操作;

在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”):   
1) 一个对象作为函数参数,以值传递的方式传入函数体;   
2) 一个对象作为函数返回值,以值传递的方式从函数返回;   
3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化);
这里我们就说说第三种情况:
point A(3,5);//定义初始化p_1点坐标为(3, 5)
下面我们想要定义一个B点,他的坐标也是(3, 5)
也就是说【定义新对象B,并用已有对象A初始化新对象时】
我们有两种实现方法
1)point B(3,5);//这种情况调用构造函数
2)point B(A);//这种情况调用拷贝构造函数
第2)种情况就达到我们所需目的:直接将A的坐标值赋值给了B;

也就是说当你的对象含有的数据很多,用构造函数直接初始化可能会些很多参数进去,然而我们需要的对象与一个已知的对象属性完全一样,那么我们使用拷贝构造函数就可以很轻松的完成,这样何乐而不为了!
Mirro187
2012-06-11 · 超过17用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:87万
展开全部
拷贝的功能 是你实现啊 把一个对象的成员赋值给另一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b00b0cf1f
2012-05-27
知道答主
回答量:10
采纳率:0%
帮助的人:14.3万
展开全部
就是把被拷贝对象的X, Y成员变量赋值给本地对象的X, Y成员变量,达到拷贝的目的,拷贝构造函数通常都这么写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式