std::ios_base::ios_base
提供: cppreference.com
(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() を呼ばなければなりません。 そうでなければ動作は未定義です。
[編集] ノート
入出力階層の次のクラス std::basic_ios のコンストラクタにも同じことが適用されます。 さらに派生したクラス (std::istream および std::ostream) は、必ず具象ストリームバッファオブジェクトを用いて構築され、その仮想基底の初期化を完了するために、場合によっては2回以上、 basic_ios::init() を呼びます。