2013-11-24 4 views
-2

나는 '피기 백'방법은 접근을 호출을 사용하여 C++에서 빌더를 구현하기 위해 노력하고있어,하지만 비주얼 C++ 컴파일러가 없다는 오류가 발생합니다 :빌더 구현

Error 6 error C2143: syntax error : missing ';' before '->' c:\users\owner\desktop\user\t\t\algebratopic.cpp 20 1 MathTutor

를 다음 코드를 사용 :

Question * test = new QuestionBuilder() 
     ->withQuestionText("(4y + 5x)2 = ") 
     ->withCorrectAnswer("16y2 + 25x2 + 40xy") 
     ->buildQuestion(); 

* 메소드를 호출 할 때마다 질문 작성기 인스턴스를 반환하고 buildQuestion이 질문 * 객체를 반환합니다.

아이디어가 있으십니까?

+0

문제를 해결하지 못했습니다. – Nick

+1

왜 수동 메모리 관리를 사용하고 있습니까 (메모리 누수)? 또한이 코드는 코드를 진단하기에 충분하지 않습니다. 문제를 설명하기 위해 최소한의 작업 예제를 게시하십시오. –

답변

0

new 표현식에 괄호를 넣고 ->.으로 적절하게 변경하십시오. 예 :

struct Foo 
{ 
    Foo & f() { return *this; } 
    Foo & g() { return *this; } 
    Foo * build() { return this; } 
}; 

int main() 
{ 
    Foo * p = (new Foo())->f().g().build(); 
}