c++中成员以及继承中修饰符的介绍

include

using namespace std;
//////////////////////////////////////////////////////////////////////////
class A //父类
{
private:
int privatedataA;
protected:
int protecteddataA;
public:
int publicdataA;
};

//////////////////////////////////////////////////////////////////////////
class B :public A //基类A的派生类B(共有继承)
{
public:
void funct()
{
int b;
b = privatedataA; //error:基类中私有成员在派生类中是不可见的
b = protecteddataA; //ok:基类的保护成员在派生类中为保护成员
b = publicdataA; //ok:基类的公共成员在派生类中为公共成员
}
};

//////////////////////////////////////////////////////////////////////////
class C :private A //基类A的派生类C(私有继承)
{
public:
void funct()
{
int c;
c = privatedataA; //error:基类中私有成员在派生类中是不可见的
c = protecteddataA; //ok:基类的保护成员在派生类中为私有成员
c = publicdataA; //ok:基类的公共成员在派生类中为私有成员
}
};

/////////////////////////////////////////////////////////////////////////
class C1: public C
{
public:
void fun()
{
int c1;
c1 = protecteddataA; //error: 基类中私有成员在派生类中是不可见的
c1 = publicdataA; //error: 基类中私有成员在派生类中是不可见的
}
};

//////////////////////////////////////////////////////////////////////////
class D :protected A //基类A的派生类D(保护继承)
{
public:
void funct()
{
int d;
d=privatedataA; //error:基类中私有成员在派生类中是不可见的
d=protecteddataA; //ok:基类的保护成员在派生类中为保护成员
d=publicdataA; //ok:基类的公共成员在派生类中为保护成员
}

};

//////////////////////////////////////////////////////////////////////////
class D1: public D
{
public:
void func()
{
int d1;
d1 = protecteddataA; //ok! 基类的保护成员在派生类中为保护成员
d1 = publicdataA; //ok! 基类的保护成员在派生类中为保护成员
}
};

//////////////////////////////////////////////////////////////////////////
int main()
{
int a;

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

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

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

return 0;

}

原文链接: https://www.cnblogs.com/131415-520/p/13258727.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c++中成员以及继承中修饰符的介绍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/363313

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午2:52
下一篇 2023年3月2日 下午2:52

相关推荐