0

我写了一个哈希表类和标题,但我无法在 main 上构造它。它给出了“没有适当的默认构造函数可用”。这是什么原因?

我的标题中的构造函数:HashTable.h

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 ) { }

我的 cpp 中的构造函数:HashTable.cpp

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

我正在尝试在我的主要代码中执行以下代码:

HashTable <int> * hash = new HashTable<int>();
4

1 回答 1

1
HashTable <int> * hash = new HashTable<int>();

您已经定义了一个带参数的构造函数,但在这里您没有将参数传递给构造函数。相反,您使用的是类中不存在的无参数(默认)构造函数。

请注意,如果您在类中定义了构造函数(接受参数),则编译器不会为您生成默认构造函数。你必须自己定义它。

于 2012-12-01T13:52:44.727 回答