您的位置:首页 > 编程语言 > C语言/C++

C++继承:公有,私有,保护

2015-07-01 20:08 239 查看
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////////////////////
class A       //父类
{
private:
int privatedateA;
protected:
int protecteddateA;
public:
int publicdateA;
};
//////////////////////////////////////////////////////////////////////////
class B :public A      //基类A的派生类B(共有继承)
{
public:
void funct()
{
int b;
b=privatedateA;   //error:基类中私有成员在派生类中是不可见的
b=protecteddateA; //ok:基类的保护成员在派生类中为保护成员
b=publicdateA;    //ok:基类的公共成员在派生类中为公共成员
}
};
//////////////////////////////////////////////////////////////////////////
class C :protected A  //基类A的派生类C(私有继承)
{
public:
void funct()
{
int c;
c=privatedateA;    //error:基类中私有成员在派生类中是不可见的
c=protecteddateA;  //ok:基类的保护成员在派生类中为私有成员
c=publicdateA;     //ok:基类的公共成员在派生类中为私有成员
}
};
//////////////////////////////////////////////////////////////////////////
class D :private A   //基类A的派生类D(保护继承)
{
public:
void funct()
{
int d;
d=privatedateA;   //error:基类中私有成员在派生类中是不可见的
d=protecteddateA; //ok:基类的保护成员在派生类中为保护成员
d=publicdateA;    //ok:基类的公共成员在派生类中为保护成员
}
};
//////////////////////////////////////////////////////////////////////////
int main()
{
int a;

B objB;
a=objB.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
a=objB.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见
a=objB.publicdateA;    //ok:基类的公共成员在派生类中为公共成员,对对象可见

C objC;
a=objC.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
a=objC.protecteddateA; //error:基类的保护成员在派生类中为私有成员,对对象不可见
a=objC.publicdateA;    //error:基类的公共成员在派生类中为私有成员,对对象不可见

D objD;
a=objD.privatedateA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
a=objD.protecteddateA; //error:基类的保护成员在派生类中为保护成员,对对象不可见
a=objD.publicdateA;    //error:基类的公共成员在派生类中为保护成员,对对象不可见

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: