1

以下代码摘自Apache C++ 标准库用户指南

class DerivedOutputStream : public std::ostream {
  public:
    DerivedOutputStream():
      std::ios(0), std::ostream(&dsb) {}        //1
    // ...
  private:
    DerivedStreamBuf dsb;
    // ...
};

请注意,std::ios它不是 的直接基类DerivedOutputStream,但它出现在成员初始化列表中。

我认为这是不正确的,是吗?

4

1 回答 1

3

如果它是一个虚拟基类是正确的。虚拟基是从最派生的类初始化的。

于 2013-02-05T21:49:53.670 回答