| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:真的很矛盾···
取消只看楼主 加入收藏
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
结帖率:30%
收藏
 问题点数:0 回复次数:1 
真的很矛盾···
#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 编辑 ]
搜索更多相关主题的帖子: 矛盾 
2010-04-19 18:58
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 3楼 debroa723
很详细   谢谢
2010-05-11 21:49
快速回复:真的很矛盾···
数据加载中...
 
   



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

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