标题:派生类的拷贝构造函数如何定义
只看楼主
heyyroup
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2006-6-14
得分:0 
以下是引用jbwang在2007-9-14 0:49:14的发言:
想了半天也没有想出办法来。
我觉得这样构造函数不太会出现使用,像Classic(const Classic & c);
既然已经知道了Classic c,那么我们只要直接赋值就好了,何必用构造函数呢?
Classic b=c;

至于第二个构造函数就好象要把一个基类赋给一个子类,这是没法做到的。(只有子类能赋给基类Cd a=b;)

我觉得讨论这个问题的意义不大,大家各抒己见吧!

但是在有动态内存分配的时候,是要定义拷贝构造函数来实现A(B)的操作的吧

2007-09-14 17:23
jbwang
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-5-22
得分:0 

我试了一下,Classic A=B;没有语法错误。
如果A是基类的对象,而B是派生类的对象的话,可以执行A=B;不是B=A。

2007-09-14 23:19
乐舞雨
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-31
得分:0 
Cd::Cd(const Cd & d)
{
performers=d.performers;
label=d.label;
selections=d.selections;
playtime=d.selections;
}

拷贝构造函数没有进行深拷贝
2008-10-31 23:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-169715-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.140057 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved