谨慎使用私有继承(3)
2008-02-23 05:28:49来源:互联网 阅读 ()
尽管如此,我们还是要回归基础。大多数 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(对象大小)的库研发者来说可能是很重要的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 创建和使用库:静态、共享和动态
下一篇: C 中extern
- C 箴言:谨慎使用私有继承(1) 2008-02-23
- C 箴言:谨慎使用私有继承 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
