I am a bit confused by the following constructor. I understand that the values key, value and next are being initialized here but the parenthesis following them throw me off. Is the action key(key) passing a type K object to type K constructor? What is going on here? The webpage I am looking at is here. Any help is much appreciated.
// Hash node class template
template <typename K, typename V>
class HashNode
{
public:
HashNode(const K &key, const V &value)
: key(key), value(value)
{}
private:
// key-value pair
K key;
V value;
};