#include <iostream>
using namespace std;
class critter{
public : // public section
critter (int hunger =0) ;
int gethunger() const ;
void sethunger (int hunger) ;
private :
int m_hunger ;
};
critter :: critter (int hunger) :
m_hunger (hunger)
{
cout << "new critter has been born" << endl ;
}
int critter :: gethunger() const
{
return m_hunger ;
}
void critter :: sethunger (int hunger)
{
if (hunger<0) {
cout << "you can not set a negative number to hunger" << endl ;
}
else {
m_hunger=hunger ;
}
}
int main()
{
critter crit(5);
cout << "calling gethunger()"<<crit.gethunger()<<endl ;
cout << "calling sethunger()" << crit.sethunger(-1) << endl ;
return 0 ;
}
나는 다음과 같은 오류가 점점 오전 : 에 대한 일치하지 않습니다'표준 : : 연산자 < <> ((* & 표준 '에서'연산자 < < :: COUT)이 라인 ((CONST 숯 *) "를 호출 sethunger()")) < < crit.critter :: sethunger (-1) "에 대한 일치하지 않습니다 '연산자 <<'에서 '표준 : : 운영자
:
{< < COUT"호출 sethunger() "< < crit.sethu nger (-1) < < endl; } 컴파일러가 인쇄되지 않는 이유
말해 주시기 바랍니다 {당신은
sethunger는 문자열을 반환하고 출력을 반환해야합니다. 아니면 당신의 main 함수는이 함수를 출력하려고해서는 안된다 ... – alkino
'void' 리턴 타입을'int'로 대체 한 다음 아무 것도 리턴 할 수 없다. 그건 말이 안돼. – chris
"함수를 호출하고 반환 값을 인쇄 할 필요가 없다는 사실을"디버그 - 인쇄 "하고 싶습니다 (아무 것도 없기 때문에). 출력없이 두 번째 행에 호출을 작성하거나 다음과 같이 해킹 할 수 있습니다. "cout <<"... "<< (crit.sethunger (-1)," ") << endl;'- 설명 : 괄호 안에는 먼저 함수를 호출합니다 (여기에는 존재하지 않는 반환 값은 무시됩니다). 그런 다음 (쉼표 뒤에) 인쇄 할 수있는 것을 제공합니다 (빈 문자열). – leemes