gpt4 book ai didi

c++ - 模板类问题;正确的模板签名?

转载 作者:行者123 更新时间:2023-11-28 03:19:23 27 4
gpt4 key购买 nike

<分区>

我正在实现一个模板类,但我不确定我的签名是否正确。下面我包含了我的代码示例,显示了我关心的几种情况:

我的 map .h:


#ifndef MAP_H
#define MAP_H
#include <iostream>
#include <string>

using namespace std;

template <typename KEY, typename T>
class Map{
private:
struct Elem {

};

public:

Map();
// constructs empty Map

Map(const Map &rhs);

~Map();

Map& operator=(const Map &rhs);

bool insert(KEY, T);

T& operator[](KEY);

};

template<typename KEY, typename T>
ostream& operator<< (ostream&, const Map<KEY, T>&);

#include "mymap.cpp"

#endif

现在是 .cpp 文件:


#include mymap.h
#include <iostream>
#include <string>

using namespace std;

//Assingment Operator
template < typename KEY , typename T >
Map< KEY , T >& Map< KEY , T >::operator=(const Map &rhs){

//Avoid self assignment
if( this != &rhs ){

//Snip
}

return *this;
}


//Insert, return true if successful.
template < typename KEY , typename T >
bool Map< KEY , T >::insert(KEY, T){

//Snip
}

如您所见,而且我相信你们都清楚,从我读到的内容来看,模板签名可能会变得非常困惑。这看起来是否正确,或者我是否有一些容易被更熟练的眼睛注意到的致盲错误?

我知道有一百万篇关于模板的帖子,我已经阅读了一些关于它们的指南,但我仍然找不到关于这个特定问题的太多信息。

此外,在不可避免的“摆脱使用命名空间标准”注释出现之前,我将其包括在内以进行调试并且它确实最终消失了,我保证:)

谢谢!


编辑:很抱歉造成困惑,我似乎错过了帖子中非常重要的部分……错误!

我有大约 5 个,都有不同的行号:

mymap.cpp:41:1: error: ‘Map’ does not name a type

和相同数量的:

expected initializer before ‘<’ token

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com