真的很矛盾···
#include <iostream>using namespace std;
class Box //基类的定义
{
private:
double length; //长度,为私有成员
public:
double width; //宽度,为公有成员
protected:
double height; //高度,为受保护成员
public:
Box(double l,double w, double h); //基类构造函数
double get_length(){ return length; } //返回长度的值
double get_width(){ return width; } //返回宽度的值
double get_height(){ return height; } //返回高度的值
double volume(); //计算体积
};
Box::Box(double l,double w, double h)
{
length=l;
width=w;
height=h;
}
double Box::volume()
{
return length*width*height;
}
class ColorBox :public Box //派生类,公有继承Box
{
private:
//颜色值,0表示黑色,1表示红色,2表示绿色,3表示蓝色,4表示白色
int color;
public:
ColorBox(double l,double w, double h, int c); //派生类构造函数
int get_color(){ return color; } //返回颜色的值
};
//类的实现
ColorBox::ColorBox(double l,double w, double h, int c):Box(l,w,h)
{
color=c;
}
void main()
{
ColorBox mycolorbox(10,20,30,1);
cout<<"盒子的长度: "<<mycolorbox.get_length()<<endl;
cout<<" 宽度: "<<mycolorbox.get_width()<<endl;
cout<<" 高度: "<<mycolorbox.get_height()<<endl;
cout<<" 颜色: "<<mycolorbox.get_color();
cout<<" (0表示黑色,1表示红色,2表示绿色,3表示蓝色,4表示白色)"<<endl;
cout<<" 体积: "<<mycolorbox.volume()<<endl;
}
请问子类ColorBox的构造函数是如何传递数值给基类的length?
我的课本是这样说的: 公有继承后,对派生类来说具有不可访问性,即派生类的成员函数和派生类对象在类外均无权访问该类成员
那你ColorBox的构造函数是派生类的成员函数,那它怎么可以把数值传达给length呢?(不是说:派生类的成员函数和派生类对象在类外均无权访问该类成员)
[ 本帖最后由 q345918550q 于 2010-4-19 19:12 编辑 ]