0

私はC ++の初心者です。次のスニペットを検討してください。

class myClass
{
  ...
  struct EntryKeyBase
  {
     void setOperation(OpType oper)
     {
        operation = oper;
     }
     OpType getOperation() const
     {
        return operation;
     }
     virtual void serialize(std::ostream& os) const = 0;
     protected:
        OpType operation;
    };

  struct ProtoEntryKey: EntryKeyBase
  {
     // some methods here

     ProtoEntryKey(uint8_t l4proto) : proto(l4proto)  // ???
     {
        operation = Inserted;
     }

     protected:
        uint8_t proto;
  };

  // here more structs defined...


  public:
    ...

};

行は何をマークしますか??? 行う?EntryKeyBase から継承する構造体を宣言していることは理解していますが、「:」に続くものは理解できません。この構文は実際には何を意味するのでしょうか? ありがとう!

4

4 に答える 4

3

初期化リストです。l4protoの値をstruct ProtoEntryKeyproto変数に代入します。

于 2013-09-04T13:14:03.260 に答える
1

シンプルなコンストラクタです。: somefield(somevalue)コンストラクターの後に記述すると、の値がsomefileldに設定されますsomevalue

あなたの例では、値protol4proto(コンストラクター引数)に設定します。

于 2013-09-04T13:08:32.503 に答える
0

protounit18_t メンバーです。コンストラクターで初期化することは理にかなっています。
:初期化リストを示します。ここで基本クラスとメンバーを初期化できます。詳しくはこちらをご覧ください。

于 2013-09-04T13:14:08.300 に答える
0

proto変数をl4proto値に設定するコンストラクタの一部です。

このリンクは役に立つかもしれません。

于 2013-09-04T13:14:38.993 に答える