【发布时间】:2010-11-14 15:43:32
【问题描述】:
为什么不建议虚拟基类中有数据成员?
函数成员呢? 如果我有一个所有派生类共有的任务,虚拟基类是否可以执行该任务,或者派生类是否应该从两个类继承 - 从虚拟接口和普通基类执行该任务?
谢谢。
【问题讨论】:
-
您能否提供建议的链接或引用?如果基类没有数据成员,我看不出它有多大意义,因为虚拟继承最常见的目的是防止基类成员的重复。例如,在标准库中,ios_base 具有数据成员,并且是 istream 和 ostream 的虚拟基类(通过 ios)。所以我几乎(但不完全)说相反的 - 如果你要拥有一个虚拟基类,那么它应该有数据成员,或者非虚拟继承。
标签: c++ inheritance virtual