错误C2143:在'常量'之前缺少语法错误')'

问题描述:

我是一名在课堂上使用C++的学生。我在其他三个问题上看到了这个错误,但是,它们都是通过在硬编码前添加一个基本算术符号来解决的。由于我不算算术,我不认为他们会帮助我。错误C2143:在'常量'之前缺少语法错误')'

对于我们的任务,我们必须解析参考书目并将结果条目存储到条目的链接列表中。为此,我们使用的这本书有一个链表类,但它有错误。我找不到的错误集之一是:

  • “错误C2143:语法错误:缺少')'之前'常量。
  • “错误C2143:语法错误:缺少';'之前'不变'。
  • “错误C2059:语法错误:缺少')'
  • ”错误C2238:在';'之前的意外标记(s)

违规行在一个模板头,我的问题是我能做些什么来解决这个问题? 的代码可以在这里找到:

template <class DataType> 
class LinkedList : public AbstractLinkedList<DataType>{ 
protected: 
    DataType* _info; 
    LinkedList<DataType>* _next; 
    void copy(const LinkedList<DataType>& 11); //first offending line 
public: 
    LinkedList(); 
    LinkedList(const LinkedList<DataType>& ll); 
    LinkedList(const DataType& info); 
    LinkedList(const DataType& info, LinkedList<DataType>* next); 
    ~LinkedList(); 
}; 

template <class DataType> 
void LinkedList<DataType>::copy(const LinkedList<DataType>& 11){ //second offending line 
    if(ll._info == NULL){ 
     _info = NULL; 
    } else { 
     _info = new DataType(*(ll._info)); 
     if(_info == NULL){ 
      throw LinkedListMemory(); 
     } 
    } 
    if(ll._next == NULL){ 
     _next = NULL; 
    } else { 
     _next = new LinkedList<DataType>(*(ll._next)); 
     if(_next == NULL){ 
      throw LinkedListMemory(); 
     } 
    } 
} 

我跳过部分未造成

事情我已经试过错误

  • 从“复制”改名到类似“copyList”
  • 删除const关键字;
  • 删除 “的LinkedList <” 和 “>”
  • 删除 “< ”“ 数据类型>”

都不是固定的问题,我的理解是没有 “LinkedList的 '<' 数据类型> &”它不能真正用于模板表单。

+1

标识符不能以数字开头。 '11'从一个数字开始。 – juanchopanza 2014-10-20 14:26:48

+1

11不是合法的变量名称。 – 2014-10-20 14:28:02

11(第一,两次)不是有效的变量名;标识符必须以字母或下划线开头。

您可能指的是ll(字母“l”,两次,可代表“链接列表”)。在某些字体中很难区分l1

+2

这就是为什么你通常想在编辑器中编写代码的原因,它有语法高亮显示。 – Angew 2014-10-20 14:28:57

+0

是的。而已。不应该在凌晨3点写信,我猜 – Eric 2014-10-20 14:36:48

+0

这也是为什么使用解释性变量名称而不是缩写字母是个好主意。它不再是1970年了,没有必要保存这样的屏幕景观! – 2014-10-20 14:39:34

变量名称不能以数字开头,因为一串数字将是一个有效的标识符以及一个有效的数字。