谨慎使用私有继承
来源:互联网
作者:west263.com
时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
尽管如此,我们还是要回归基础。大多数 classes(类)不是空的,所以 EBO 很少会成为 private inheritance(私有继承)的一个合理的理由。此外,大多数 inheritance(继承)相当于 is-a,而这正是 public inheritance(公有继承)而非 private(私有)所做的事。composition(复合)和 private inheritance(私有继承)两者都意味着 is-implemented-in-terms-of(是根据……实现的),但是 composition(复合)更易于理解,所以您应该尽您所能使用他。
private inheritance(私有继承)更可能在以下情况中成为一种设计策略,当您要处理的两个 classes(类)不具备 is-a(是个)的关系,而且其中的一个还需要访问另一个的 protected members(保护成员)或需要重定义一个或更多个他的 virtual functions(虚拟函数)。甚至在这种情况下,我们也看到 public inheritance 和 containment 的混合使用通常也能产生您想要的行为,虽然有更大的设计复杂度。谨慎使用 private inheritance(私有继承)意味着在使用他的时候,已考虑过任何的可选方案,只有他才是您的软件中明确表示两个 classes(类)之间关系的最好方法。
Things to Remember
·private inheritance(私有继承)意味着 is-implemented-in-terms of(是根据……实现的)。他通常比 composition(复合)更低级,但当一个 derived class(派生类)需要访问 protected base class members(保护基类成员)或需要重定义 inherited virtual functions(继承来的虚拟函数)时他就是合理的。
·和 composition(复合)不同,private inheritance(私有继承)能使 empty base optimization(空基优化)有效。这对于致力于最小化 object sizes(对象大小)的库研发者来说可能是很重要的。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



