저는 대학생으로서 자바에서 C++로 전환합니다. 우리는 대부분 내가 얻는 과부하 연산자에 대해 소개되었지만, 과제를 위해 나는 어려움을 겪었습니다. 기본 질문 :오버로드 할 수 없으므로 object1 = 0이됩니다.
Weight w1(-5, 35), w2(5, -35), w3(2, 5), w4(1), w5, w6;
//later on in main
cout << "(w5 = 0) is " << (w5 = 0) << endl;
내 체중 개체는 1 온스에 1 파운드를 포함합니다. 내 프로그램이이 줄에 오면 w5는 이미 (0,0)으로 설정되어 있지만 w5를 인쇄하면 주소가 너무 길어집니다. 여기에 내가 특정 과부하 .H 및 통화 당에있는 코드 = 내가 할 수 없습니다 포럼에서 배운
//Weight.h
Weight& operator=(const int);
//Weight.cpp
Weight& Weight::operator=(const int number)
{
Weight changer(number); //constructs weight object with one int to (int, 0)
return changer;
}
= 친구 과부하가 나를 위해이 개 인수에 걸릴 수있다이다 함수. 어떤 도움이라도 대단히 감사합니다!
//code for my << overload
ostream& operator << (ostream& output, const Weight& w)
{
switch(w.pounds)
{
case 1:
case -1:
output << w.pounds << "lb";
break;
case 0:
break;
default:
output << w.pounds << "lbs";
break;
}
switch(w.ounces)
{
case 1:
case -1:
output << w.ounces << "oz";
break;
case 0:
break;
default:
output << w.ounces << "ozs";
break;
}
if (w.pounds == 0 && w.ounces == 0)
{
output << w.ounces << "oz";
}
return output;
}
'operator <<'에 대한 오버로드를 볼 수 있습니까? – slugonamission
컴파일에 문제가 없지만 여기에 w5 = 0에 대한 인쇄물이 있습니다. – Elliott
죄송합니다. 질문을 잘못 읽었습니다. 귀하의'<<'오버로드가 올바르지 않은 것 같습니다. – slugonamission