社区
C++ 语言
帖子详情
基类Public 函数过多,有什么更好的解决办法呢?
Kitchen020
2011-01-12 10:47:30
如题,如果子类不断增长,需要的public函数就会不断增加,大家有什么好的建议呢?
注:这个基类是一个非常通用的基类,如果将基类拆分到多个基类,其他功能实现会非常困难,或者说更不合理。
...全文
86
9
打赏
收藏
基类Public 函数过多,有什么更好的解决办法呢?
如题,如果子类不断增长,需要的public函数就会不断增加,大家有什么好的建议呢? 注:这个基类是一个非常通用的基类,如果将基类拆分到多个基类,其他功能实现会非常困难,或者说更不合理。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
InfidelX
2011-01-12
打赏
举报
回复
decorator和composite。这两个pattern对你比较有用。
pubhobo
2011-01-12
打赏
举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
这涉及到了模式编程,有很多模式都是用来对付万变的客户,而减少代码体系改动的,比如装饰着,桥接模式,适配器模式等
[/Quote]
很高深的东西啊
showjim
2011-01-12
打赏
举报
回复
不明白子类的public与基类有什么关系
xgy8705023
2011-01-12
打赏
举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
这涉及到了模式编程,有很多模式都是用来对付万变的客户,而减少代码体系改动的,比如装饰着,桥接模式,适配器模式等
[/Quote]
++
bluesky12312388
2011-01-12
打赏
举报
回复
装饰模式正好满足LZ 要求
bdmh
2011-01-12
打赏
举报
回复
这涉及到了模式编程,有很多模式都是用来对付万变的客户,而减少代码体系改动的,比如装饰着,桥接模式,适配器模式等
ilikeperl
2011-01-12
打赏
举报
回复
子类增长怎么会导致基类public函数不断增加? 是不是你的基类职能不明确?
不过我建议你可以增加层数,不断增加的子类导致基类膨胀,你可以增加父类,来减少基类的负担:
---基类
|--父类(把某些相近地接口封装在这,不一定都在基类)
|--子类
[Quote=引用楼主 junjie020 的回复:]
如题,如果子类不断增长,需要的public函数就会不断增加,大家有什么好的建议呢?
注:这个基类是一个非常通用的基类,如果将基类拆分到多个基类,其他功能实现会非常困难,或者说更不合理。
[/Quote]
iambic
2011-01-12
打赏
举报
回复
哪有泛泛而谈的解决方案。
c++ 派生类的构造
函数
与
基类
构造
函数
的关系
《面向对象程序设计基础(第二版》李师贤等,第254页:C++语言的基本规则是:创建一个派生类的对象时,如果
基类
带有构造
函数
,则先调用
基类
的构造
函数
,然后才调用派生类的构造
函数
。 《Thinking in C++》,刘宗田...
C++ 别要求子类重写虚
函数
时调用
基类
同名
函数
别要求子类重写虚
函数
时调用
基类
同名
函数
C++中
基类
与派生类的构造
函数
和析构
函数
构造
函数
不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成为派生类的构造
函数
,当然更不能成为普通的成员
函数
。 在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的...
C++虚
基类
和虚
函数
~
我们一般说定义虚
基类
,是因为为了去解决二义性的问题(在菱形结构中,由于一级派生类
函数
重名,二级派生类对象调用同名
函数
时程序产生两种或多种可能,有歧义,就产生了二义性问题;或者像
基类
的数据成员在二级派生...
C++
基类
和派生类的构造
函数
在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造
函数
完成,但是大部分
基类
都有 private 属性的成员变量,它们在派生类中无法访问,更不能使用派生类的构造
函数
来初始化。
解决办法
:在派生类的...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章