그래서 두 개의 숫자가있는 간격 클래스가 있고 ++ 접두사와 접미사를 사용하려고하지만 오류가 발생합니다. 1 IntelliSense : 식에 클래스 형식이 있어야합니다. 오른쪽은, (i++).kiir();
해야IntelliSense : 표현식에 클래스 형식 (접두사 접두사 오류)이 있어야합니다.
class intervallum
{
int a;
int b;
public:
intervallum();
intervallum(int x,int y);
intervallum operator++();
void operator++(int);
void kiir();
};
intervallum intervallum::operator++()
{
a -= 1;
b += 1;
return intervallum(a,b);
}
void intervallum::operator++(int)
{
operator++();
}
void intervallum::kiir()
{
cout << "[" << a << "," << b << "]" << endl;
}
void main()
{
intervallum i(2,4);
i.kiir();
(++i).kiir();
i.kiir();
(i++).kiir; // <- the error is with this
i.kiir();
}
'intervallum 연산자 ++() :
당신은 아마 rigth 하나를 작성하는 작업자의 서명 목록을 확인해야합니다. 그리고 void 연산자 ++ (int);는'intervallum'을 리턴해야합니다. –
도움 주셔서 감사합니다! 내가 잘못했는지, void operator ++ (int)를 intervallum operator ++ (int)로 바꿔야 만했다.이 방법은 내가 상상했던대로 제대로 작동한다. – user3520631
@ user3520631 SO 철학은 사용자에게 도움을 주려는 것이다. 당신이하는 방법은 * upvoting * answers (숫자 위에 삼각형 모양의 버튼)입니다. 대답을 수락 할 수도 있습니다. 즉, 가장 도움이 된 답변이었습니다. 어느 것이 대개 큰 문제가 아닙니다. –