提及“阶级”是不明确的

时间:2015-10-10 10:55:44

标签: c++ hash std

我想实现一个哈希表示例。 所以为了这个目标,我创建了一个头文件,一个hash.cpp和main.cpp文件。 在我的hash.cpp中,我试图运行一个虚拟哈希函数,该函数获取键值并转换为索引值。但是,每当我尝试根据该哈希类创建一个对象时,它就会抛出一个错误(引用'hash'是不明确的)。

这是我的main.cpp:

#include "hash.h"
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>

using namespace std;

int main(int argc, const char * argv[]) {

    hash hash_object;
    int index;
    index=hash_object.hash("patrickkluivert");

    cout<<"index="<<index<<endl;
return 0;
}

这是我的hash.cpp:

#include "hash.h"
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>


using namespace std;

int hash(string key){
    int hash=0;
 int index;
    index=key.length();

    return index;
}

这是我的hash.h

#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

#ifndef __hashtable__hash__
#define __hashtable__hash__
class hash
{
    public:
     int Hash(string key);

};

#endif /* defined(__hashtable__hash__) */

1 个答案:

答案 0 :(得分:4)

您的hash班级与std::hash有冲突。立即停止使用using namespace std;。如果您想缩短打印语句,请尝试using std::cout; using std::endl;