社区
C++ 语言
帖子详情
我不想要两份代码
cpp99
2004-03-30 04:23:40
我有两个类A和B
他们有三个成员函数完全一样,而且代码特别长,他们都调用到了C类的成员函数
我不想要两份代码
请问:我有什么选择?
...全文
106
15
打赏
收藏
我不想要两份代码
我有两个类A和B 他们有三个成员函数完全一样,而且代码特别长,他们都调用到了C类的成员函数 我不想要两份代码 请问:我有什么选择?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cpp99
2004-04-05
打赏
举报
回复
bridge 模式
是什么东西?
cpp99
2004-04-05
打赏
举报
回复
我现在是新写一个类
把上面所说的三个函数放到里面去
然后两个类A和B都调用新类的成员函数
因为我的软件的框架已经定下了
不能随便给两个类A和B再弄一个父类
请各路高人评一下我的做法
Wolf0403
2004-04-05
打赏
举报
回复
老土:这就是我说的组合了:)
conghonglei
2004-04-04
打赏
举报
回复
使用private 继承,表达 WORK_LIKE_THIS 语义
Wolf0403
2004-04-04
打赏
举报
回复
不能“滥用”不代表不能用。这里的话用 private inheritance + using declaration 或者 组合 + bridge 模式都可以。(其实本质是一样的)
meijing
2004-04-04
打赏
举报
回复
公共部分做基类?
不是大师们都强调不要滥用继承吗?
如果不是真的继承关系的话还是将公共部分做成单独的类。
A,B都包含该类为成员变量。
cgsw12345
2004-04-04
打赏
举报
回复
private inheritance + using declaration 或者 组合 + bridge 模式
conghonglei
2004-04-04
打赏
举报
回复
使用继承时是应当仔细分析一下,
A 和B 存在共同的特性,应当考虑是否应抽象出一个层出来。
另外public 继承表达IS_A关系,属于接口继承。
private 继承表达WORK_LIKE_A 或 USABLE_AS_A 关系,属于实现继承。在你的这种情况下,private继承也应当注意只使用base class的公有接口,
在《c++设计新思维》中提到一个“正交分解”的概念,你可以参考一下应该如何分析设计类,以及使用继承。
Bruceleexiaokan
2004-03-30
打赏
举报
回复
把相同提出来做基类,由于基类只用于实现A和B,可不做接口,故private继承就可以了
pinboo
2004-03-30
打赏
举报
回复
把相同提出来做基类
classrect
2004-03-30
打赏
举报
回复
从A,B中提取出一个基类(Super Class),
这个基类去关联C。
hpho
2004-03-30
打赏
举报
回复
意思是叫你把这部分提取出来.
不过我想知道A和B应该有关系吧?!
cpp99
2004-03-30
打赏
举报
回复
Extract Class或者Extract Super Class
是什么意思?
zouxueping
2004-03-30
打赏
举报
回复
把相同部分提取出来组成一个基类
北极猩猩
2004-03-30
打赏
举报
回复
Extract Class或者Extract Super Class
linux如何将
两份
hdmi edid合并
本文介绍在Linux下合并
两份
HDMI EDID的方法,合并策略为取EDID1基本信息与(EDID1 + EDID2)详细时序。提供了Python、Shell脚本和C程序三种合并方式,还说明了验证合并后EDID的方法,并对
代码
逻辑和具体问题场景进行分析。
貌似我的ollama加载的模型被下载了
两份
?终于搞懂原理了。
ollama是快速部署本地大模型的合适选择之一。本文介绍了ollama模型的默认保存位置,若未设置OLLAMA_MODELS,模型会下载到homedir下的.ollama/models文件夹。还说明了ollama服务及原始启动方式下模型的保存路径,以及可通过设置环境变量OLLAMA_MODELS修改保存路径。
网易
两份
凉拌面「面经」
本文作者分享了一次技术面试的经历,包括一面和二面。题目涉及C++编程、数据结构、算法、内存管理、并发、网络协议等。面试官对编程题的解答进行了点评,并深入探讨了相关技术细节。二面则更加侧重于对象生命周期、线程同步、数据结构的实现原理等。面试者感受到了压力,但也从中学到了很多。
软件工程23-架构师:不想当架构师的程序员不是好程序员
本文指出程序员不一定要有架构师头衔,关键是有架构师思维,包括抽象、分治、复用和迭代思维。好的架构师需懂业务、有编码经验和沟通能力。要成为好架构师,需先成优秀程序员,多模仿学习,选好行业和平台积累经验。
如何在使用计算机时不想砸了它?
本文介绍如何利用PortableApps创建个性化便携软件工具箱,包括多种高效工具,如7-Zip、Firefox、Notepad++等。PortableApps不仅使软件便携化,还实现了快速部署与高效使用。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章