std::basic_ios
has a public constructor:
std::basic_ios
IMO,类具有公共构造函数的唯一原因是在程序中使用该类的独立实例。如果仅存在一个类以使其他类从其派生(如explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb);
的情况),则该类的所有构造函数都应为basic_ios
。 protected
的构造函数均受保护。但是,由于某种原因,该标准的设计者将此std::ios_base
的构造函数公开了。
basic_ios
用作几种流类型的基类,并且我无法设想用例中至少有一个basic_ios
或basic_istream
。有没有?
类具有公共构造函数的另一个原因是在派生类中具有此构造函数签名: