2014-07-06 2 views
0

토큰 화 및 문자열 입력 클래스를 만들었습니다. 그러나대기열 매개 변수가있는 함수에 대한 C++ 정의되지 않은 참조

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

, I 생성자로부터 이들 함수를 호출 :이 파라미터로서 대기열을 취하는 함수이다

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

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

    tokens.push(currentToken); 
    return tokens; 
} 

다음과 같이 문자열의 큐에 캐릭터의 성분 변환 :

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

내가받을 다음과 같은 오류 :.

Fraction.cpp :(텍스트 + 0X 1FD) '로 정의 기준 분획 :: evaluateInfix (표준 : 큐 < 표준 : 문자열 표준 : 양단 < 표준 : 문자열 표준 : 할당 < 표준 : 스트링 "" "&)'

그리고 왜 내 인생에 대해 알아낼 수 없습니다. 어떤 도움을 주셔서 감사합니다.

답변

1

귀하의 멤버 함수 정의는 클래스의 범위를 누락되었습니다

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

맙소사. 나는 이것을 알아 내기 위해 얼마나 많은 시간을 할애했는지 믿을 수 없다. 어쩌면 두 개의 함수 (deque vs list)에서 다른 컨테이너를 사용하여 큐와 관련이있을 것이라고 생각했습니다. 반환 유형은 내가 실종 된 범위로 나를 눈 멀게하고 있었다. 귀하의 도움을 많이 주시면 감사하겠습니다! – gstanley

관련 문제