返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

c++问题


#include <iostream.h>class rectangle{                                   //定义一个矩形基类public :    int l;    int w;    rectangle(){l=3,w=2;}    virtual void out(){                       //输出长和宽        cout<<"rectangle.l="<<l<<endl;        cout<<"rectangle.w="<<w<<endl;    }};class squar : public rectangle {                 ////由基类以公有方式导子类型    void out(){        int max;        (l<w)?max=w:max=l;                //将长方形中较长的边设为                   w=l=max;                          //正方形的边        cout<<"squar.l=squar.w="<<max<<endl;    }};  void main(){    rectangle re,*pre;    squar sq;    pre=&re;               pre->out();    pre=&sq;                       //使基类指针指向子类    pre->out();}请问各位:   为什么将 公有 导出改为 私有 时编译出错   谢了!





fucan [ 1 楼 ]
2006-03-31 23:47:00
因为私有继承时,派生类的对象不能访问基类中的数据.在派生类中基类的成员已经变成了protected. 

fucan [ 2 楼 ]
2006-03-31 23:52:00
不是prwtected应该全部为 private这样,它对于派生的对象对就为不可见了.不好意思,刚才弄错了, 

liren0 [ 3 楼 ]
2006-03-31 23:58:00
哦!!!  明 白 了    谢了  老兄.