2014-07-06 93 views
0

我已經創建了一個Tokenizes和字符串輸入的類。這一串的組件轉換成字符串的隊列如下:C++未定義的參考隊列參數功能

queue<string> Fraction::Tokenize(const string & infixExpression) 
{ 
    queue<string> tokens; 
    string currentToken; 

    for(char currentChar : infixExpression) 
    { 
     currentToken += currentChar; 
    } 

    tokens.push(currentToken); 
    return tokens; 
} 

這是一個需要隊列作爲參數的函數:

Fraction evaluateInfix(queue<string> & infixQueue) 
{ 
//code goes here 
} 

然而,當我把這些功能從構造函數:

Fraction::Fraction(const string &infix) 
{ 
    queue<string> myQueue = Tokenize(infix); 
    *this = evaluateInfix(myQueue); 
} 

我得到以下錯誤:

Fraction.cpp :(文字+ 0X 1FD):未定義參考`分數:: evaluateInfix(標準::隊列<的std :: string,性病::雙端隊列<的std :: string,性病::分配器<的std :: string>>> &)」

並不能爲我的生活找出原因。謝謝你的幫助。

回答

1

你的成員函數的定義缺少類範圍:

Fraction Fraction::evaluateInfix(queue<string> & infixQueue) 
     ^^^^^^^^^^ 
+0

哦,我的上帝。我無法相信我花了多少時間來解決這個問題。我想也許它必須在兩個函數中使用不同的容器(deque vs list)來處理隊列。返回類型使我失明的範圍。非常感謝您的幫助! – gstanley