鱼C论坛

 找回密码
 立即注册
查看: 2855|回复: 0

小弟遇到了一个关于派生类复制构造函数的问题

[复制链接]
发表于 2013-10-2 12:30:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 骇客不会飞 于 2013-10-2 12:36 编辑

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呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 05:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表