我正在尝试编写一个继承 std::map 的类,但我也想重载一个特定的函数,同时保持剩余的继承函数可用。在阅读了一些关于它的内容后,您似乎必须使用 map 的命名空间才能使用它的功能。但是我必须使用using std::map<K,V>::map;
它才能工作。我的问题是最后一个是什么::map
?它是地图的命名空间的名称吗?但是,如果我们以 cout 为例,您只需要using cout;
. 另外,如何知道 stl 的名称空间的名称?
代码如下所示:
#include <map>
template<typename K,typename V>
class my_map : public std::map<K,V>
{
private:
/* data */
public:
using std::map<K,V>::map;
};
using std::map<K,V>::map;
如果您想在类外使用基本构造函数(以继承构造函数),则需要使用它。
这std::map<K,V>::map
是构造函数并由类名限定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句