2014-10-20 213 views
-1

我是一名在課堂上使用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

回答

5

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

0

變量名稱不能以數字開頭,因爲一串數字將是一個有效的標識符以及一個有效的數字。

相關問題