怎么解决代码冗余?

tkminigame 2009-06-23 02:07:27
有一个父类的virtual方法中做了若干事。现从父类继承一个类,重写这个virtual方法,为了在父类的这个方法后面加几句话,不得不把父类方法里的代码重拷贝一遍,有什么办法解决这个冗余?父类的代码不能动。
...全文
341 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
damo_xu 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 tkminigame 的帖子:]
有一个父类的virtual方法中做了若干事。现从父类继承一个类,重写这个virtual方法,为了在父类的这个方法后面加几句话,不得不把父类方法里的代码重拷贝一遍,有什么办法解决这个冗余?父类的代码不能动。
[/Quote]

virtual这个关键词的意义就是在子类里我要重写这个方法,所以楼主的问题个人感觉:
1.如果父代码不能动,或重拷贝的代码比较少,那只能拷贝代码;
2.如果父代码可以动,很显然这段代码不适合用在这个virtual方法里面。
coverallwangp 2009-06-23
  • 打赏
  • 举报
回复
父类名::函数名
这样可以在子类里面调用父类的方法
goodname 2009-06-23
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;


class B
{

public:
virtual void f(){cout<<"B::f()"<<endl;}

virtual ~B(){}
};

class D:public B
{

public:
virtual void f(){B::f();cout<<"D::f()"<<endl;}//use B::f();
};

int main()
{
B *p = new D;

p->f();

delete p;
}

sunhuanwen 2009-06-23
  • 打赏
  • 举报
回复
期待

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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