以下代码摘自Apache C++ Standard Library User's Guide
class DerivedOutputStream : public std::ostream {
public:
DerivedOutputStream():
std::ios(0), std::ostream(&dsb) {} //1
// ...
private:
DerivedStreamBuf dsb;
// ...
};
请注意std::ios
不是DerivedOutputStream
的直接基类,但它出现在成员初始化列表中。
我认为这不正确,是吗?
答案 0 :(得分:3)
如果它是虚拟基类,则是正确的。虚拟基础从最派生的类初始化。