ACE学习积累之不厌恶多继承和虚析构函数设计哲学

似乎ACE并不厌恶多继承,而且大量使用了多继承!


在优良的类设计下,ACE的多继承并不近亲繁殖,反而可以做到类似切面编程、接口编程、背靠背编程等,实现更丰富的功能!

对于ACE源码中某些*Base的实现基类,曾惊讶于它们不提供虚析构函数。

对于C++编程精通的人员,一下子可能就会意识到,这些类不适合作为基类引用进行编程。

ACE类设计中同时还存在大量的虚析构函数,例如, ACE_Allocator,是否也可以说明这是刻意为之:这特别的*Base类,不希望你以基类引用的编程来操纵它们!

与用const关键词修饰,有异曲同工之妙

虽然在Effective C++中建议作为基类应该提供虚构函数,但是,我觉得ACE在这里的设计哲学,更具编程规范意义:

  • 如果我不想作为基类被操作,那么我不提供虚析构函数
  • 如果因此出错,就让它快速地出错、冒出来,并不为了害怕而过度设计

前面的文章说想总结下,ACE的虚析构函数的设计哲学,我想就在此吧…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值