函数可以覆盖,能覆盖成员变量吗?

ArchonLee 2014-08-19 08:57:36
最近在使用BCG的Gantt控件,遇到一个问题想请教大家一下。

这个CBCGPGanttView是继承于CView,我又继承CBCGPGanttView类建了一个叫CustomGanttView的类

在CBCGPGanttView中有一个CBCGPGanttControl类型的变量,CBCGPGanttControl中有一个CBCGPGanttChart类型的变量

现在有一个需求,是想覆盖CBCGPGanttChart中的一个DrawHeader方法,把列头自定义一下。

是不是就要在再分别建立CCustomGanttControl : CBCGPGanttControl和CCustomGanttChart : CBCGPGanttChart从而来重写CCustomGanttChart::DrawHeader?

如果是这样的话,那是不是就要在CCustomGanttControl 中将涉及到m_ganttchart的方法全要复制一遍呢?否则其他的函数还会调用到CBCGPGanttControl中的m_ganttchart,然后因为m_ganttchart是空而报错

还是有更好的解决方法?请指教
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArchonLee 2014-08-20
  • 打赏
  • 举报
回复
已经解决了。。。的确是要重写N个类 一层一层的写下去~~多谢大家~!
lis2012 2014-08-19
  • 打赏
  • 举报
回复
一般要是涉及太复杂了,不可以自己扩展,就直接在源代码里面修改了,修改要注意兼容性,可以设置开关函数(bcg里面都是这么干的)
dvlinker 2014-08-19
  • 打赏
  • 举报
回复
变量好像好不好覆盖吧
阿呆_ 2014-08-19
  • 打赏
  • 举报
回复
引用
在CBCGPGanttView中有一个CBCGPGanttControl类型的变量,CBCGPGanttControl中有一个CBCGPGanttChart类型的变量
如果是public的指针型变量,那么你可以新建一个CustomGanttChart类继承自CBCGPGanttChart然后重写其DrawHeader,然后在你的CustomGanttView中将原(CBCGPGanttControl*)->CBCGPGanttChart*变量替换成你的CustomGanttChart实例,既然你的CustomGanttChart继承自CBCGPGanttChart,那么原CBCGPGanttControl调用CBCGPGanttChart的代码都不需要修改

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧