【发布时间】:2016-08-01 17:18:44
【问题描述】:
我尝试使用模板,但我完全不喜欢模板。一旦我开始我会得到一些错误,我不明白这是什么意思? 所以文字就在这里,我想做的事:
编写一个基于模板的类来实现一组项目。班级应该允许 用户要 一种。将新项目添加到集合中。 湾。获取集合中的项目数。 C。获取指向包含集合中每个项目的动态创建数组的指针。这 该函数的调用者负责释放内存。
错误是:
Item::output': 无法将函数定义与现有声明匹配
Item::in': 无法将函数定义与现有声明匹配
添加:不是“项目”的成员
我的代码在这里:
#include <iostream>
using namespace std;
template<class T>
class Item {
private:
Item();
~Item();
void Add(T item);
int get();
void output(T array);
bool in(T item);
T *array;
int element;
int size;
};
template<class T>
Item<T>::Item()
{
element = 0;
size = 10;
array = new T[size];
}
template<class T>
Item<T>::~Item()
{
delete[] array;
}
template<class T>
void Item<T>::add(T item)
{
if (in() == false)
{
size++;
array[size] = Item;
}
}
template<class T>
void Item<T>::in(T item)
{
for (int i = 0; i < size; i++)
{
if (array[i] == Item)
{
return true;
}
else
{
return false;
}
}
}
template<class T>
int Item<T>::get()
{
return element;
}
template<class T>
void Item<T>::output()
{
for (int i = 0; i < size; i++)
{
cout << array[i] << endl;
}
}
int main()
{
system("pause");
return 0;
}
【问题讨论】:
-
void output(T array);是否匹配template<class T> void Item<T>::output()? -
是的,我看到了这个错误,我修复了它
标签: c++ class templates compiler-errors syntax-error