关于派生类的复制构造函数问题,实在想不通
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呢?