6
_currentHandle()は以下の意味ですか?空の初期化を伴うコンストラクタの初期化リスト
_currentHandle()は以下の意味ですか?空の初期化を伴うコンストラクタの初期化リスト
template<class SpiHandleT>
class SpiHandleIterator : public ISpiHandleIterator<SpiHandleT>
{
public:
SpiHandleIterator() : _currentHandle()
{
}
...
protected:
SpiHandleT _currentHandle;
};
これは値初期化として知られています。 C++ 03標準、§8.5/ 7:
初期化子が空の括弧セット(すなわち、)であるオブジェクトは、値で初期化されます。
そして8.5/5:
に値初期化タイプ
T
の目的は、意味:
- を
T
ユーザ宣言コンストラクタを持つクラス型の場合T
のデフォルトのコンストラクタが呼び出されます(T
にアクセスできないデフォルトコンストラクタがない場合、初期化は不正です)。T
が、ユーザーが宣言したコンストラクターを持たない非共用クラス・タイプの場合、すべての非静的データ・メンバーおよび基本クラスのコンポーネントT
は値で初期化されます。T
が配列型の場合、各要素は値で初期化されます。- そうでなければ、オブジェクトが
タイプ
T
のオブジェクトゼロ初期化にゼロに初期化される手段:
- を
T
はスカラ型である場合、オブジェクトが値に設定されています0
(零)はT
に変換され、T
が非共用クラス・タイプの場合、各非静的データ・メンバーおよび各基本クラス・サブオブジェクトはゼロ初期化されます。T
がユニオンタイプの場合、オブジェクトの最初の名前付きデータメンバー)はゼロで初期化されます。T
が配列型の場合、各要素はゼロで初期化されます。T
が参照型の場合、初期化は実行されません。
だからあなたの場合には、それはSpiHandleT
の定義に依存: