我是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,但是后面的':'我不明白,这个语法到底意味着什么? 谢谢!
答案 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链接可能很有用。