在私有继承,基类中所有的成员对基类中私有成员在派生类都是是不可见的,为什么是错的

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

A.在公有继承方式下直接派生类對象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员

B.在公有继承方式下间接派生类对象可以直接调用基类中的公有成員函数,去访问基类的私有数据成员

C.在私有继承方式下间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成員

D.不管是私有继承还是公有继承基类中的私有成员在派生类的作用域内都是不可见的

而我的代码是印发错误的为什麼?

把一个成员声明为私有的目的就是不让你在子类中用要是像题主这样强制类型转换之后就可以用的话还要

这个访问说明符干嘛,只留

如果你想重载(overload)父类的函数可以修改两行:

如果基类不是很复杂的话,还是有办法搞定的
声明一个与基类几乎一样的结构体或类,如果是类的话把所有的权限都声明成public的,然后将原对象指针强制转型成你声明的新类就成了
新的结构体实现以下几点:
1.需要声明原基类中从第一个到你需要访问的成员变量。比如原基类中有5个变量你需要访问的是第3个,那结构体就声明前3个就成
2.如果原基类有其它基類那结构体也从它们派生就是了
3.如果基类中有虚函数,结构体加上一个带virtual的析构函数
4.对齐方式要与基类相同
按照这个方式,基本上就嘟能搞定了
不要说什么破坏封装性的话原罪在基类的设计者考虑不周到

我要回帖

更多关于 基类中私有成员在派生类都是 的文章

 

随机推荐