我写了一个哈希表类和标题,但我不能在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>();
答案 0 :(得分:1)
HashTable <int> * hash = new HashTable<int>();
你已经定义了一个带参数的构造函数,但是这里你没有将参数传递给构造函数。相反,你正在使用一个在你的类中不存在的无参数(默认)构造函数。
请注意,如果您在类中定义了一个构造函数(它接受了参数),那么编译器将不会为您生成默认构造函数。你自己定义它。