| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1059 人关注过本帖
标题:我用的是public继承,但是为何子类的函数不是public的呢?
取消只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
 问题点数:0 回复次数:3 
我用的是public继承,但是为何子类的函数不是public的呢?
我用的是public继承,但是为何子类的函数不是public的呢?

#include <iostream.h>

class base;

base * pbase;

class base
{
public:
   base()
   {
  pbase=this;
         
   }
   virtual void fn()
   {
  cout<<"base"<<endl;
   }
};

class derived:public base
{
 void fn()
 {
  cout<<"derived"<<endl;
 }
};


derived aa;  //全局变量

void main()
{
 derived my1;
 my1.fn();
}

搜索更多相关主题的帖子: 函数 继承 public 子类 
2009-10-09 13:56
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
fn()在基类中是public函数,但是为何到了子类中,就没有public访问权限了呢?

2009-10-09 13:57
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
以下是引用flyingcloude在2009-10-9 14:41:55的发言:

因为你在子类中已经把fn()定义成私有的拉
但是我是public继承呀,
难道public继承在这里不起作用吗?
访问权限只依据
类中的:
public:
private:
protected:
吗:
class b :public a
后面的 public a 不起作用吗?


2009-10-09 15:05
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
明白了,我如果在子类中不进行覆盖,是可以调用的,但是我在子类中重写这个函数,其访问权限应该取决于子类的限定。

2009-10-10 08:36
快速回复:我用的是public继承,但是为何子类的函数不是public的呢?
数据加载中...
 
   



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

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