标题:关于派生类的复制构造函数问题,实在想不通
取消只看楼主
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
结帖率:0
已结贴  问题点数:10 回复次数:1 
关于派生类的复制构造函数问题,实在想不通
class AAA
{
    private:
         char * label;
         int rating;
    public:
         AAA(const AAA &rs);
        …………
}
AAA::AAA(const AAA & rs)
{
label=new char[strlen(rs.label)+1];
strcpy(label,rs.label);
rating=rs.rating;
}

class BBB:public AAA
{
   private:
         char * color[10];
   public:
   friend std::ostream & operator<<(std::ostream & os,const BBB & rs);  //输出为BBB派生类的三个数据成员,定义懒得写;
  …………   //无派生类的构造函数
}
int main()
{
BBB balloon("red","blimpo",4);     //其中也包含了对AAA基类的数据成员初始化
BBB ballon2(balloon);
cout<<balloon2<<endl;
}
输出结果为balloon的三个值(即red ,blimpo ,4),书上说的是如果没有为派生类显式定义复制构造函数,那么派生类默认使用基类的复制构造函数复制基类的部分,我的问题:按照说法应该是:复制构造函数只复制了label和rating的值,怎么连color值也复制给了balloon2呢?
搜索更多相关主题的帖子: private rating public friend color 
2013-10-02 13:03
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
得分:0 
回复 3楼 blueskiner
其实那些我都懒得写出来而已
2013-10-02 20:58



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




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

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