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

时间:2014-10-20 14:24:55

标签: c++

我是一名在课堂上使用c ++的学生。我确实在其他三个问题中看到了这个错误,但是,它们都是通过在硬编码数字前添加基本算术符号来解决的。由于我不做算术,我认为他们不会在这里帮助我。

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

  • "错误C2143:语法错误:缺少')'之前'常数。'
  • "错误C2143:语法错误:缺少&#39 ;;'之前'常数。'
  • "错误C2059:语法错误:缺少')'
  • "错误C2238:'之前的意外令牌'

违规行在模板标题中,我的问题是我该怎么做才能解决这个问题? 代码可以在这里找到:

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();
        }
    }
}

我跳过不会导致错误的部分

我尝试的事情:

  • 更改&#34;复制&#34;类似&#34; copyList&#34;
  • 删除const关键字;
  • 删除&#34; LinkedList&lt;&#34;和&#34;&gt;&#34;
  • 删除&#34;&lt;&#34;&#34;数据类型&gt;&#34;

这一切都没有解决问题,我的理解是没有&#34; LinkedList&#39;&lt;&#39; DataType&gt;&amp;&#34;它无法真正用于模板形式。

2 个答案:

答案 0 :(得分:5)

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

你可能意味着ll(字母“l”,两次,可以代表“链表”)。在某些字体中,很难区分l1

答案 1 :(得分:0)

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