2014-10-06 5 views
1

bool yes()을 호출하려고 시도 중 int main입니다. 위에 표시된 오류가 계속 발생합니다. 함수 호출 안에 char c을 포함해야합니까?오류 : 'char'앞에 예상 기본 표현

bool yes(char c){ 
if(c == 'y' || c == 'Y'){ 
    return true; 
} 
else 
    return false; 

} 
int main(){ 
try{ 
char c; 
cin>>c; 
bool yes(char c); //not sure if char c should be here 

    cout<<"Think of one of these 8 things: ..... Press '|' when you are ready\n"; 

if(c == '|'){ 
    cout<<"Are you thinking of something big?\n"; 
    cin>>c; 

    if(yes(char c) == true){ //error here in yes(), trying to call function 
     cout<<"Are you thinking of something that is alive?\n"; 
     cin>>c; 
     if(yes(char c) == true){ //error here in yes(), trying to call function 
      cout<<"Are you thinking of an animal?\n"; 
      cin>>c; 

       if(yes(char c) == true){ //error here in yes(), trying to call function 
        cout<<"You are thinking of an elephant.\n"; 

        } 
      } 
     } 
} 
+4

C++의 자습서를 읽고 함수를 호출하는 방법을 배웁니다. 힌트 :'예 (char c)'와는 다릅니다. –

+0

'try'의 목적은 무엇입니까? 또한 if 문에는'== true'가 필요하지 않습니다. –

+0

사소한 일을 단순화하려면 다음 행을 삭제하십시오.'bool yes (char c);'- 예제에서는 아무런 도움이되지 않습니다. – nobar

답변

0

"예"기능을 호출하는 방법에 약간의 의미 론적 문제가 있습니다. 시도해보십시오.

bool yesResult = yes(c); 

메서드를 호출 할 때 "char"를 포함하지 않는 것이 옳습니다. c를 함수 호출에 전달할 때 더 이상 필요하지 않습니다. c는 본질적으로 char입니다. 첫 번째로 yes()를 호출 할 때 호출 전에 "bool"이 지정된다는 점도 주목해야합니다. 이러한 구문은 필자의 예제에서와 같이 함수의 반환 값을 저장하려는 경우에만 필요합니다. 유형에는 이름이 수반되어야합니다. if 문 조건 내에있는 yes()의 다른 호출은 그대로 완벽합니다.

+1

'c'가 계속 변경됨에 따라'yes (c) '의 결과를 상수 변수에 할당하는 것은 의미가 없다. 그냥'예 (c) '라고 계속 전화하십시오. – timrau

+0

좋은 지적. 나머지 코드는 읽지 않았습니다. const 키워드는 편집을 통해 제거되었습니다. – d3coy

+1

반환 값을 변수에 저장할 필요가 없습니다. OP의 코드 에서처럼 직접 사용하는 것이 좋습니다. – nobar