一个简单的 c++ 文件和类 TT 有两种方法。
#include <map>
#include <string>
#include <iostream>
using namespace std;
class TT{
public:
TT(const string& str);
template<class T>T Read(const string& key)const;
template<class T>T Read(const string& key, const T& value)const;
};
TT::TT(const string& str){
cout<<str<<endl;
}
template<class T>T TT::Read(const string& key)const{
std::cout<<key<<std::endl;
return 1;
}
template<class T>T TT::Read(const string& key, const T& value)const{
std::cout<<key<<'\t'<<value<<std::endl;
return value;
}
int main(void){
TT tt("First");
tt.Read("Hello", 12);
return 1;
}
如果更换
tt.Read("Hello world!", 12);
和
tt.Read("Hello world!");
在主()
G++ 说:
new.cc:31: 错误:没有匹配函数调用 'TT::Read(const char [5])'</p>
为什么 G++ 找不到Read(const string& key)const方法?
谢谢!