1
나는 클래스를 가지고 있는데, 사전 및 사후 증분 모두를 operator++
으로 정의하려고합니다. 또한 사전 및 사후 감소를 정의하려고합니다. 즉 operator--
입니다. 주에서이 같은 일을하려고 할 때 나는 오류가 발생Polynomial ++ : p (x)를 1 씩 증가시키는 방법
class Polynomial
{
public:
Polynomial();
Polynomial(vector<int>coeffs);
/*
.
.
.
*/
Polynomial operator++();
Polynomial& operator++ (int unused);
Polynomial operator--();
Polynomial& operator-- (int unused);
/*
.
.
.
*/
private:
vector<int> coefficient;
};
Polynomial Polynomial::operator++()
{
coefficient[0]++;
return *this;
}
Polynomial& Polynomial::operator++ (int unused)
{
Polynomial copy(*this);
coefficient[0]++;
return copy;
}
Polynomial Polynomial::operator--()
{
coefficient[0]--;
return *this;
}
Polynomial& Polynomial::operator-- (int unused)
{
Polynomial copy(*this);
coefficient[0]--;
return copy;
}
: 여기 내 코드의 조각입니다
Polynomial p(
... 일부 벡터 ... );
cout << p++;
일반적으로 사전 증가는 참조를 반환합니다. 후행 증가 값을 반환해야합니다. 당신이 잘못한 것처럼 보입니다. – juanchopanza