加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C:避免继承层次结构中的双重维护

发布时间:2020-12-16 10:52:13 所属栏目:百科 来源:网络整理
导读:创建C继承结构时,必须在多个位置定义完全相同的成员函数: 如果B是一个抽象基类,并且D,E和F都从B继承,那么你可能有: class B{ virtual func A( ... params ) = 0;};class D : public B{ func A( ... params );};/* ... etc... similar implementations for
创建C继承结构时,必须在多个位置定义完全相同的成员函数:

如果B是一个抽象基类,并且D,E和F都从B继承,那么你可能有:

class B
{
   virtual func A( ... params ) = 0;
};

class D : public B
{
   func A( ... params );
};

/* ... etc... similar implementations for E and F */

所以,这里显然有一些重复.如果B的接口很大,如果接口需要更改,则可能有许多地方需要更改.

一位同事用嵌入式巧妙创造的#includes,ala提出了一些诡计:

class D: public B
{
   #include "B_Interface.h"  // B_Interface.h is a specially crafted .h file
}

这看起来有点笨拙?是吗?有没有更好的解决方案来避免双重维护?

此外,这里的解决方案可能是支持语言的更好工具,例如Visual Assist X?

编辑:假设派生类必须具有唯一的实现.

解决方法

实际上,更改界面的最大问题通常是使用它的所有代码,而不是实现它的代码.如果为实施者更改它很容易,那么可能会让用户的生活更加艰难.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读