当其中一个基类为空,而另一个不为空时,我列出基类的顺序是否重要?
class Foo : normal_class, empty_class { ... };
class Foo : empty_class, normal_class { ... };
订单是否影响编译器应用空基类优化的能力?
当其中一个基类为空,而另一个不为空时,我列出基类的顺序是否重要?
class Foo : normal_class, empty_class { ... };
class Foo : empty_class, normal_class { ... };
订单是否影响编译器应用空基类优化的能力?
我认为这并不重要 - 尽管我通常会尝试首先放置一个空的基类。
在boost网站上有一个关于多个空基类的有趣注释:http://www.boost.org/doc/libs/1_38_0/libs/utility/operators.htm#old_lib_note
这是不相关的 -- 继承了一些数据成员之后,编译器可能会任意填充类。因此,空优化并不一定适用。
empty_class
中包含任何方法/构造函数吗?如果它完全为空,那么我想知道您继承的目的是什么。 - iammilind