Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 C+中的类定义不明确错误+;11与std::hash一起使用_C++11 - Fatal编程技术网

C++11 C+中的类定义不明确错误+;11与std::hash一起使用

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

我试图在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 <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放置