0

以下は私のコードです。GNU G++ コンパイラを使用しています。「main.cpp: In function 'int main()': main.cpp:12:9: error: 'class hash' has no member named 'printVectorContents'」というエラーが表示されます

私は何かばかげたことを見落としていることを知っています。何か助けはありますか?

int main()
{
    std::cout << "Yeah you did dat"<<std::endl;
    hash<int> newHash;
    newHash.printVectorContents();
    std::cin.get();
    return 0;
}

そして私のテンプレート化されたクラス...

template <class dataTypeClass> class hash{
private:
    std::vector <dataTypeClass> hashVector;
    std::string mName;
public:
    hash(){}
    hash(std::string aName = "unnamedHash"):mName(aName),hashVector(100,NULL){}
    ~hash(){std::cout<<"Hash "<<mName<<"destructing!";}
    void addHashItem(dataTypeClass aHashItem, std::string akey){}
    int hashFunction(dataTypeClass hashItem){return 0;}
    void printVectorContents()
    {
        for (typename std::vector<dataTypeClass>::iterator i = hashVector.begin(); i<hashVector.rend(); i++)
        {
            std::cout<< *i << std::endl;
        }
    }
};
4

1 に答える 1

5
  1. hashは一般的な名前にするかmyhash、名前の衝突を避けるために独自の名前空間に配置します。

  2. 削除しhash(){}ます。デフォルトのパラメーターを受け取るコンストラクターが既にあります。宣言するhash<int> myhash;と、どのコンストラクターを呼び出すかわかりません。

  3. に変更i<hashVector.rend()i != hashVector.end()ます。

  4. に変更hashVector(100,NULL)hashVector(100)ます。

于 2012-09-27T06:15:24.700 に答える