尝试初始化HashTable对象时未解决的外部符号错误

时间:2014-12-01 17:39:46

标签: c++ templates hashtable

我正在尝试使用哈希表来存储Liv-Zempel压缩的字典。我正在使用我的讲师提供给我的模板HashTable类,并使用一个名为Entry的类来存储字符串值和字典的代码,同时重载==和!=运算符以与HashTable类兼容。 / p>

但是,当我尝试使用正确的参数初始化main函数中的HashTable对象时,我得到一个关于我的构造函数的未解析的外部符号错误。

我的HashTable.h如下:

    #ifndef _HASH_TABLE
    #define _HASH_TABLE
    #include <vector>
    using namespace std;
    template <class HashedObj>
        class HashTable
        {
          public:
              HashTable(){};
            explicit HashTable( const HashedObj & notFound, int size =101);
            HashTable( const HashTable & rhs )
              : ITEM_NOT_FOUND( rhs.ITEM_NOT_FOUND ),
                array( rhs.array ), currentSize( rhs.currentSize ) { }
            const HashedObj & find( const HashedObj & x ) const;
            void insert( const HashedObj & x );
            void remove( const HashedObj & x );
            const HashTable & operator=( const HashTable & rhs );
            enum EntryType { ACTIVE, EMPTY, DELETED };
          private:
            struct HashEntry
            {
                HashedObj element;
                EntryType info;

                HashEntry( const HashedObj & e = HashedObj( ), EntryType i = EMPTY )
                  : element( e ), info( i ) { }
            };

            vector <HashEntry> array;
            int currentSize;
            const HashedObj ITEM_NOT_FOUND;
            int nextPrime(int n);
            bool isPrime(int n);
            bool isActive( int currentPos ) const;
            int findPos( const HashedObj & x ) const;
            void rehash();
        };

#endif

构造函数定义是

HashTable<HashedObj>::HashTable( const HashedObj & notFound, int size )
          : ITEM_NOT_FOUND( notFound ), array( nextPrime( size ) )
        {

        }

由于这堂课大部分来自我的讲师,我在试图理解这个问题的根源时遇到了很大的问题。任何见解将不胜感激。谢谢!

错误消息:

  

main.obj:错误LNK2019:未解析的外部符号“public:   __thiscall HashTable :: HashTable(类Entry const&amp;,int)“(?? 0?$ HashTable @ VEntry @@@@ QAE @ ABVEntry @@ H @ Z)引用   在函数_main 1&gt; d:\ users \ suuser \ documents \ visual studio中   2012 \ Projects \ compress-program \ Debug \ compress-program.exe:致命   错误LNK1120:1个未解析的外部

当我从main调用函数时:

HashTable<Entry> dictionary(notFound,4096);

0 个答案:

没有答案