我对 C++ 相当陌生,并且使用它创建类,尤其是使用模板类。我收到了很多错误消息,我不确定如何修复它们,希望这里有人能提供帮助,在此先感谢。
班上:
template <class T> class Vector {
public:
typedef T* iterator;
Vector();
iterator begin();
iterator end();
int size();
iterator insert(iterator position, const T& item);
void alloc_new();
private:
T items;
int used;
};
template <class T> Vector::Vector() {
items = [1000];
used = 0;
}
template <class T> iterator Vector::begin() {
return items;
}
template <class T> iterator Vector::end(){
return items + used;
}
template <class T> int Vector::size() {
return used;
}
template <class T> iterator Vector::insert(iterator position, const T& item){
if (used+1 > items){
alloc_new();}
items[position] = item;
used =+ 1;
}
template <class T> void Vector::alloc_new(){
items = used*2;
T tmp[] = items;
for (int i = 0; i < used; i++){
tmp[i] = items[i];
}
delete items;
items = tmp;
}
错误消息:
main.cpp:67:错误:“模板类向量”在没有模板参数的情况下使用 main.cpp:67:错误:ISO C++ 禁止声明没有类型的“向量” main.cpp:67:错误:模板“模板 int Vector()”的声明 main.cpp:52:错误:与先前的声明“模板类向量”冲突 main.cpp:52:错误:先前的非函数声明“模板类向量” main.cpp:67:错误:与函数声明“模板 int Vector()”冲突 main.cpp:在函数“int Vector()”中: main.cpp:68: error: `items' undeclared (首先使用这个函数) main.cpp:68: 错误:(每个未声明的标识符对于它出现的每个函数只报告一次。) main.cpp:68:错误:“[”标记之前的预期主表达式 main.cpp:69: error: `used' undeclared (首先使用这个函数) main.cpp:在全局范围内: main.cpp:72:错误:“Vector”之前的预期构造函数、析构函数或类型转换 main.cpp:72:错误:预期的 `;' 在“矢量”之前 main.cpp:76:错误:“Vector”之前的预期构造函数、析构函数或类型转换 main.cpp:76:错误:预期的 `;' 在“矢量”之前 main.cpp:80:错误:“模板类向量”在没有模板参数的情况下使用 main.cpp:在函数“int size()”中: main.cpp:81: error: `used' undeclared (首先使用这个函数) main.cpp:在全局范围内: main.cpp:84:错误:“向量”之前的预期构造函数、析构函数或类型转换 main.cpp:84:错误:预期的 `;' 在“矢量”之前 main.cpp:94:错误:“模板类向量”在没有模板参数的情况下使用 main.cpp:在函数“void alloc_new()”中: main.cpp:95: error: `items' undeclared (首先使用这个函数) main.cpp:95: error: `used' undeclared (首先使用这个函数)