注册 登录
编程论坛 C++教室

继承的问题

tianxiao110 发布于 2010-07-27 16:16, 365 次点击
#include<iostream>
using namespace std;
class box
{
    protected :
    int chang;
    int kuan;
    int gao;
};
class box1:public box
{
    public:
    void set1()
    {
        cin>>chang>>kuan>>gao>>time;
    }
    void show1()
    {
        cout<<chang<<" "<<kuan<<" "<<gao<<" "<<time<<endl;
    }
    private:
    int time;
};
void main()
{
    box1 b1;
    b1.set1();
    b1.show1();
    cout<<b1.chang<<endl;   //     我采用的是公有继承的方式,基类的protected数据在派生类里已经成了public成员,可为什么不能引用呢????
}
4 回复
#2
wuanping2010-07-27 16:26
main()里怎么能用b1.chang??

不是变成public成员了,是能通过public函数来调用。

[ 本帖最后由 wuanping 于 2010-7-27 16:27 编辑 ]
#3
gq1987182010-07-27 16:31
pubic成员能够被类的外部函数访问,而protected成员则不能
#4
pangding2010-07-27 21:39
pubilc 好像是 public 变 public, protected 变 protected。就是属性不变,不是全变 public。
#5
zgxyz20082010-07-28 10:15
当类的继承方式为公有继承时,基类的公有和保护成员的访问属性在派生类中不变,就是说基类的protect在子类中仍然是protect,而protect属性是不能被类外访问的。
1