在类中定义的结构

时间:2013-09-04 13:06:22

标签: c++

我是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 个答案:

答案 0 :(得分:3)

这是初始化列表。它将 l4proto 的值分配给struct ProtoEntryKey 中的 proto 变量。

答案 1 :(得分:1)

这是简单的构造函数。如果您在构造函数后面写: somefield(somevalue),则会将somefileld的值设置为somevalue

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

This链接可能很有用。