社区
C++ 语言
帖子详情
派生类会影响到基类吗?
zjfhgdx
2008-10-15 08:53:48
《C++大学教程》里的一句话
派生类可以影响PRIVATE基类成员的状态改变,但是只能通过类中提供的继承到派生类中的非PRIVATE成员函数
派生类可以影响基类?
派生类可以影响PRIVATE基类成员的状态改变。这句具体什么意思啊?
他的意思是不是说只能通过调用非PRIVATE的成员函数来间接的使用PRIVATE的成员?
...全文
230
12
打赏
收藏
派生类会影响到基类吗?
《C++大学教程》里的一句话 派生类可以影响PRIVATE基类成员的状态改变,但是只能通过类中提供的继承到派生类中的非PRIVATE成员函数 派生类可以影响基类? 派生类可以影响PRIVATE基类成员的状态改变。这句具体什么意思啊? 他的意思是不是说只能通过调用非PRIVATE的成员函数来间接的使用PRIVATE的成员?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackzhhuang
2008-10-17
打赏
举报
回复
[Quote=引用 10 楼 dfkjsdhfks 的回复:]
天啊,楼上在干什么,我们如果都用private修饰,我们岂不要忙得不得了了,而且它还在一定的程度上中继了类的继承与派生啊,我宁愿不用private;
[/Quote]
如果用protected修饰成员数据,而且类很大,继承引起的耦合性就会很强,代码跟踪也很头疼(由于子类父类数据直接交互而没有堆栈可看),多调用些函数虽然写起来麻烦,但是要是修改、调试起来真的很方便。
我基本上不用protected
个人见解而已。
jackzhhuang
2008-10-16
打赏
举报
回复
私有继承相当于把基类当做派生类的成员,你只能通过基类的public接口与基类交互,我觉得这说不上什么影响不影响。
保护继承和公有继承却可以随意访问基类非private成员变量,应该避免这种情况,尽管MFC里面常用这招,但这可是缺点。
总之,基类和派生类最好只通过公有接口交互是最好的(可以大大降低继承带来的耦合度),所以最好使用private修饰基类成员变量。
jackzhhuang
2008-10-16
打赏
举报
回复
晕倒,从面向对象的封装角度来说,派生类绝对不能影响基类。
派生类要是影响了基类,那就是乱套了。
所以少用继承,少用protected,少用友元。
Big鹏
2008-10-16
打赏
举报
回复
当然可以影响基类的私有成员啦!一点问题都没有!!
“但是只能通过类中提供的继承到派生类中的非PRIVATE成员函数 ”
也就是:子类中继承父类中的成员函数(public or protected),然后,在父类自身的成员函数里修改自身的私有成员。
chenzhp
2008-10-16
打赏
举报
回复
派生类访问到基类的protected成员,有可能将其改变
Dan_M
2008-10-16
打赏
举报
回复
应该不会吧
once_and_again
2008-10-16
打赏
举报
回复
[Quote=引用 2 楼 boys2002 的回复:]
在类外 private 数据成员 必须通过 public 成员函数获取或设置
但是友元 可以直接访问到!!!!!!!!!!!咯!!!!!!
派生类可以影响基类?
这个我个人认为:
1:基类修改可以影响派生类 2:派生类修改不会影响基类 3:父类改后,子类不一定会更新,最好是重新刷新。
闪人先~~~~~~~~~~
[/Quote]学习了
yndfcd
2008-10-16
打赏
举报
回复
那个应该是翻译的问题.那个句子都不通顺.
派生类当然可以影响基类.
他那句话的意思应该是派生类可以通过基类提供的接口修改基类的成员.
dfkjsdhfks
2008-10-16
打赏
举报
回复
天啊,楼上在干什么,我们如果都用private修饰,我们岂不要忙得不得了了,而且它还在一定的程度上中继了类的继承与派生啊,我宁愿不用private;
creamyjung
2008-10-15
打赏
举报
回复
“派生类可以影响PRIVATE基类成员的状态改变”是指派生类中的成员可以调用基类中提供的public或者protected成员来间接的访问基类中的私有成员。
比如下面的例子中B中的函数setdata可以改变A中的private成员data:
#include <iostream.h>
class A
{
public:
A(){data=0;}
protected:
void setdata(int x){data=x;}
int getdata(){return data;}
private:
int data;
};
class B:private A
{
public:
void setdata(int x){A::setdata(x);}
int getdata(){return A::getdata();}
};
void main()
{
B b;
b.setdata(1);
cout<<b.getdata()<<endl;
}
boys2002
2008-10-15
打赏
举报
回复
在类外 private 数据成员 必须通过 public 成员函数获取或设置
但是友元 可以直接访问到!!!!!!!!!!!咯!!!!!!
派生类可以影响基类?
这个我个人认为:
1:基类修改可以影响派生类 2:派生类修改不会影响基类 3:父类改后,子类不一定会更新,最好是重新刷新。
闪人先~~~~~~~~~~
jintianfree
2008-10-15
打赏
举报
回复
在类外 private 数据成员 必须通过 public 成员函数获取或设置 友员除外
在继承中还会有protected 的情况
C++中
派生类
之间的赋值对
基类
的
影响
本文详细解读了使用C++实现类之间的继承,并通过赋值运算符来复制类对象的过程。着重分析了
基类
和
派生类
属性的相互
影响
,以及赋值操作如何在不同类之间传递信息。
基类
禁止拷贝操作对
派生类
的
影响
本文详细探讨了Boost库中noncopyable类的作用及其实现机制,通过具体示例展示了如何通过继承禁止拷贝构造函数和赋值运算符,以及
派生类
如何覆盖这些行为。
C++primer原书中的一个错误(
派生类
using声明对
基类
权限的
影响
)
本文通过实例验证了C++中
派生类
能否改变从
基类
继承成员的访问级别,并给出了结论:只有当
派生类
对成员具有访问权限时才能改变其访问级别。
C++虚函数笔记:位置分析、
基类
与
派生类
虚函数关系、创建时机、多重继承
影响
、不纯类
影响
、虚
基类
(8/5)
本文详细探讨了C++中虚函数的相关概念,包括虚函数表指针的位置分析、根据虚函数地址手动调用函数的原理及验证、单一继承与多重继承下的虚函数表关系等。通过实例代码展示了虚函数表的结构和虚函数调用的实现机制,同时涵盖了vptr和vtbl的创建时机验证,以及虚函数调用的性能
影响
。
C++ 学习(
派生类
到
基类
准还的可访问性)
本文探讨了
派生类
继承
基类
时的不同方式(公有、受保护、私有)如何
影响
派生类
向
基类
的转换过程,特别是成员函数和友元函数在这方面的应用。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章