Eclipse中的C++错误

C++ Errors in Eclipse

本文关键字:错误 C++ 中的 Eclipse      更新时间:2023-10-16

我已经在Eclipse中编写了这个头文件。Eclipse显示的错误我不确定它们是什么意思。代码:

is>>numPairs;kP=新KeyValuePair[numPairs];

Eclipse显示numPairs和kP未解析。然后最后两个方法(createTable和getValue)显示"无效重载"。我今天问了我的TA,他说代码是正确的。我也尝试过将它分离成一个实现文件,但同样的错误仍然存在。我的头文件在src文件夹和main.cpp中。我缺少什么吗?

#ifndef TRANSLATIONTABLE_H_
#define TRANSLATIONTABLE_H_
#include "KeyValuePair.h"
template<typename Key, typename Value>
class TranslationTable
{
private:
    int numPairs;
    KeyValuePair<Key,Value> *kP;
public:
    TranslationTable(std::istream& is);
    TranslationTable();
    void createTable(std::istream& is);
    Value getValue(Key myKey) const;
};
 template<typename Key, typename Value>
 TranslationTable<typename Key,typename Value>TranslationTable()
 {return;}
 template<typename Key, typename Value>
 TranslationTable<typename Key,typename Value>TranslationTable(std::istream& is)
 {
is >> numPairs;
kP = new KeyValuePair<Key,Value>[numPairs];
 }
 template<typename Key, typename Value>
 void TranslationTable<Key,Value>::createTable(std::istream& is)
 {
is >> numPairs;
kP = new KeyValuePair<Key,Value>[numPairs];
 }
 template<typename Key, typename Value>
 Value TranslationTable<Key,Value>::getValue(Key myKey) const
 {
}
#endif /* TRANSLATIONTABLE_H_ */

您忘记了构造函数定义的作用域解析符号::

 template<typename Key, typename Value>
 TranslationTable<typename Key,typename Value>::TranslationTable()
                                              ^^^
 template<typename Key, typename Value>
 TranslationTable<typename Key,typename Value>::TranslationTable(std::istream& is)
                                              ^^^