Chinaunix首页 | 论坛 | 博客
  • 博客访问: 363795
  • 博文数量: 102
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 1116
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-29 16:21
文章分类

全部博文(102)

文章存档

2014年(10)

2011年(1)

2008年(2)

2007年(89)

我的朋友

分类: C/C++

2007-09-14 12:21:32

1、单个类的成员中只有public才能被外部程序访问;

2、对公有继承来说,基类中的public仍为->派生类public,基类中的protected->派生类protected

3、对保护继承来说,基类中的publicprotected->派生类protected

4、对私有继承来说,基类中的所有东西都是私有的,外部是不能够访问的。而且再往下的派生类也是不能访问这些东东的。

5、在继承关系中,基类的private成员不但对应用程序隐藏,即使是派生类也是隐藏不可访问的,而基类的保护成员只对应用程序隐藏,对于派生类来说是不隐藏的,保护继承与私有继承在实际编程工作中使用是极其少见的,他们只在技术理论上有意义。

6、可以在私有继承和保护继承中用public显式声明基类中用publicprotected修饰的东东。如public Base::i;(iBase中是公有或者受保护的。),这样外部程序便可访问。

7、保护继承和私有继承的派生类不能向上映射(类型转换)到基类。

例子:

#include

#include

using namespace std;

 

class Base{

     public:

         int a;

         virtual char * testing()=0;

         Base():a(0),b(0),c(0){}

     protected:

         int b;

     private:

         int c;

};

 

class privateclass : private Base{

   public:

        Base::a;

        Base::b;

        char * testing(){b=2;a=3;return "Hi,I'm in privateclass!";};

};

 

class publicclass :public Base{

   public :

         char * testing(){b=2;a=3;return "Hi,I'm in publicclass!";};

};

 

class protectedclass :protected Base{

   public :

         Base::a;

         Base::b;

         char * testing(){b=2;a=3;return "Hi,I'm in protectedclass!";};

};

 

char * hello( Base & base){

   return base.testing();

}

 

void main()

{

     //privateclass test;

     //publicclass test;

     protectedclass test;

     //cout<

     cout<

}

阅读(1414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~