2

私はこのようなクラスを持っています、

class CLv
{
public:
    BOOL operator == (const CLv& lv) const
    {
        return _value == lv._value && _fStart == lv._fStart;
    }
    BOOL operator != (const CLv& lv) const
    {
        return _value != lv._value || _fStart != lv._fStart;
    }
    BYTE    _value;             
    BYTE    _fStart :1;         
};

では、以下のコードセグメントはどういう意味ですか?

CLv        lvEnd = {0,0};
4

1 に答える 1

2

lvEndこれは、typeの変数が、そのメンバーとCLvの値で初期化されることを意味します。00_value_fStart

あなたのクラスは集合体です:

8.5.1集計[dcl.init.aggr]

1)アグリゲートは、ユーザー提供のコンストラクター(12.1)、非静的データメンバー用のブレースまたはイコールイニシャライザー(9.2)、プライベートまたは保護された非静的データメンバー(条項11)、基本クラスなし(条項10)、および仮想関数なし(10.3)。

そして、リストで初期化することができます:

8.5.4リストの初期化[dcl.init.list]

1)リストの初期化は、braced-init-listからのオブジェクトまたは参照の初期化です。このような初期化子は初期化子リストと呼ばれ、リストのコンマ区切りの初期化子句は初期化子リストの要素と呼ばれます。[...]

于 2012-10-16T09:28:26.710 に答える