C++11 C+中的类定义不明确错误+;11与std::hash一起使用
我试图在Hash.cpp文件中定义C++11 C+中的类定义不明确错误+;11与std::hash一起使用,c++11,C++11,我试图在Hash.cpp文件中定义int Hash(string key),但它给了我一个错误“Hash不明确”。 我不知道为什么。我已经以多种方式分发了#includes,但它仍然不起作用 [文件:hash.cpp] #include "hash.h" using namespace std; int hash::Hash(string key) { } [文件:hash.h] #include<string> #include<cstdlib> #include
int Hash(string key)
,但它给了我一个错误“Hash不明确”。
我不知道为什么。我已经以多种方式分发了#includes
,但它仍然不起作用
[文件:hash.cpp]
#include "hash.h"
using namespace std;
int hash::Hash(string key)
{
}
[文件:hash.h]
#include<string>
#include<cstdlib>
#include <iomanip>
using namespace std;
#ifndef HASH_H
#define HASH_H
class hash
{
public:
int Hash(string key);
};
#endif
#包括
#包括
#包括
使用名称空间std;
#ifndefhash_H
#定义哈希值
类散列
{
公众:
int散列(字符串键);
};
#恩迪夫
[文件:main.cpp]
#include<iostream>
#include "hash.h"
using namespace std;
int main()
{
return 0;
}
#包括
#包括“hash.h”
使用名称空间std;
int main()
{
返回0;
}
问题是C++11已经附带了std::hash
(),这导致了冲突。使用名称空间std删除编码>并将类放入自己的命名空间中,或将类重命名为其他名称。这就是为什么不应使用命名空间std放置头文件中的代码>