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)在构造函数之后编写,它将设置值somefileldto somevalue

在您的示例中,它将设置protol4proto(构造函数参数)的值。

于 2013-09-04T13:08:32.503 回答
0

proto是 unit18_t 成员。在构造函数中初始化它是有意义的。 表示初始化列表
:您可以在此处初始化基类和成员。有关详细信息,请参见此处

于 2013-09-04T13:14:08.300 回答
0

它是将proto变量设置为l4proto值的构造函数的一部分。

这个链接可能有用。

于 2013-09-04T13:14:38.993 回答