只是一个快速的语法问题。我正在写地图课(学校)。C++运算符[]语法
如果我定义了以下运算符重载:
template<typename Key, typename Val> class Map {...
Val* operator[](Key k);
会发生什么事,当一个用户写道:
Map<int,int> myMap;
map[10] = 3;
做这样的事情,只有将覆盖[空]指针的临时副本键k。是否有可能这样做:
map[10] = 3;
printf("%i\n", map[10]);
具有相同的运算符过载?
所以我应该定义我的超载为 Val&operator [](Key k);并且确保我适当地进行初始化,即使这里没有任何东西。 – mamidon 2009-11-02 00:04:17
这是正确的。 – 2009-11-02 00:06:24
谢谢一堆;即使不是'需要',我也必须制造物体。 – mamidon 2009-11-02 00:09:38