std::ios_base::ios_base
(1) | ||
private: ios_base( const ios_base& ); |
(C++11 前) | |
public: ios_base( const ios_base& ) = delete; |
(C++11 起) | |
protected: ios_base(); |
(2) | |
1) 复制构造函数被删除:流不可复制
2) 默认构造函数受保护:只有导出类可构造 std::ios_base
。构造后内部状态未定义。导出类必须在首次使用或析构函数前调用 basic_ios::init() 完成初始化;否则行为未定义。
注意
同样的情况应用于 I/O 层级中的下个类 std::basic_ios 的构造函数。进一步导出的类( std::istream 与 std::ostream )始终以具体的 streambuffer 构造,并可能多于一次调用 basic_ios::init() ,以完成其虚基类的初始化。