我对以下构造函数感到有点困惑.我知道值键,值和下一个在这里被初始化,但是它们之后的括号让我失望.操作键(键)是否将类型K对象传递给类型K构造函数?这里发生了什么?我正在看的网页就在这里.任何帮助深表感谢.
// Hash node class template templateclass HashNode { public: HashNode(const K &key, const V &value) : key(key), value(value) {} private: // key-value pair K key; V value; };
Dylan Nichol.. 7
:key(key)只是用参数'key'的值初始化私有成员'key'.即使具有相同的名称,它也不含糊,因为只能使用此语法初始化成员,而C++用于解析符号名称的规则意味着首先检查本地定义的(包括通过参数列表)名称,因此第二个"键"必须参考论点.这是一个好的做法也许是一个品味的问题.
:key(key)只是用参数'key'的值初始化私有成员'key'.即使具有相同的名称,它也不含糊,因为只能使用此语法初始化成员,而C++用于解析符号名称的规则意味着首先检查本地定义的(包括通过参数列表)名称,因此第二个"键"必须参考论点.这是一个好的做法也许是一个品味的问题.