不考虑性能的话,当然可以。
一般来说,在大多数情况下,还是推荐用虚析构的。因为它的额外开销不算太大——vptr 一般都会有,所以实际额外开销也就调用时多一次查表。
虚继承就很少用。一来适用场景很少,二来要很可能要增加虚基类表指针和多个虚函数表指针,而且访问虚基类的所有成员及变量,都要增加一次或两次的查表跳转开销。而且还有一点,在这种情况下,因为很多状态是运行时确定的,所以编译器很难做各种编译优化。
总而言之,C/C++ 的哲学是:如果我用不到XX特性,那就不要为此付出额外代价。
所以,在这种哲学下,你的问题应该反过来问:虚继承和虚析构函数的存在是为了解决什么问题? 能否都用非虚继承和非虚析构函数?
如果你接受不了这种哲学,总想着一招鲜吃遍天的话,不妨考虑下php/python之类的语言吧。。。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有