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? 编辑:假设派生类必须具有唯一的实现. 解决方法
实际上,更改界面的最大问题通常是使用它的所有代码,而不是实现它的代码.如果为实施者更改它很容易,那么可能会让用户的生活更加艰难.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |