分类: C/C++
2007-09-14 12:21:32
1、单个类的成员中只有public才能被外部程序访问;
2、对公有继承来说,基类中的public仍为->派生类public,基类中的protected->派生类protected;
3、对保护继承来说,基类中的public和protected->派生类protected;
4、对私有继承来说,基类中的所有东西都是私有的,外部是不能够访问的。而且再往下的派生类也是不能访问这些东东的。
5、在继承关系中,基类的private成员不但对应用程序隐藏,即使是派生类也是隐藏不可访问的,而基类的保护成员只对应用程序隐藏,对于派生类来说是不隐藏的,保护继承与私有继承在实际编程工作中使用是极其少见的,他们只在技术理论上有意义。
6、可以在私有继承和保护继承中用public显式声明基类中用public和protected修饰的东东。如public Base::i;(i在Base中是公有或者受保护的。),这样外部程序便可访问。
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<
}