有以下错误
[Error] missing template arguments before 'L'
[Error] 'L' was not declared in this scope
recipe for target 'main.o' failed
在此代码部分
int main () {
lista L;
L.crealista();
这是什么意思?
这是课程" lista":
template <class tipoelem>
class lista {
public:
typedef int pos;
struct cella {
tipoelem elemento;
pos prec;
pos succ;
};
lista ();
~lista ();
答案 0 :(得分:0)
如果我们把它归结为基础知识,你有:
template <class T>
struct X{};
int main()
{
X x;
}
因为X是一个类模板,并且你没有提供它,所以你会得到一个错误,说明缺少模板参数。修复是为它提供适当的元素:
// ... as before ...
int main()
{
X<int> x; // Note <int> argument.
}
在您的简短代码段中,您看起来有一个链接列表(lista),您要创建一个您希望存储在其中的某种数据类型(tipoelem)。你需要声明列出你想要的tipoelem。
E.g。
lista<int> L;
答案 1 :(得分:0)
固定!现在我正在尝试实现打印列表功能。
在列表类头文件
中添加了这个void stampalista (lista& L);
和.cpp
template <class tipoelem>
void lista<tipoelem>::stampalista (lista& L) {
lista::pos corrente;
if (L.listavuota()) {
cout << "la lista e' vuota\n";
return;
}
corrente = L.primolista();
while (!L.finelista(corrente)) {
cout << L.leggilista(corrente) << " ";
corrente = L.succlista(corrente);
}
cout << "\n";
}
错误:
[错误]没有匹配函数来调用'lista :: stampalista()'