我们刚刚在我的 comp sci 课程中介绍了泛型和模板。我被要求创建一个支持任何数据类型的存储和检索的通用容器类。我的所有功能都可以正常工作,除了调整数组大小时。我在我的插入函数中调用了调整大小:
template< typename T >
void Container< T >::insert( T magic)
{
if (index == size)
{
resize();
}
containerPtr[index] = magic;
index++;
}
size 变量是数组的大小,索引是下一个插入位置。
这是我的调整大小功能:
template< typename T >
void Container< T >::resize()
{
int doubSize = size * 2;
Container< T > temp(doubSize);
for (int i = 0; i < size; i++)
{
temp[i] = containerPtr[i]; // error 1 here
}
*containerPtr = temp; // error 2 here
size = doubSize;
}
我的超载=
template< typename T >
const T Container< T >::operator=(const T& rhs)
{
if(this == &rhs)
{
return *this;
}
return *rhs;
}
尝试编译时收到以下错误:
1: error C2676: binary '[': 'Container<T>' does not define this operator or a conversion to a type acceptable to the predefined operator
2: error C2679: binary '=': no operator found which takes a right-hand operand of type 'Container<T>' (or there is no acceptable conversion)
我不确定我在哪里出错了......