두 번째 다항식을 추가하려고합니다. 첫 번째 행은 계수를 저장하고 두 번째 행은 차수를 저장합니다.두 개의 다항식을 더하기 위해 + 연산자를 오버로드합니다.
오버로드 + 함수를 만들었지 만 여기서 할당 된 메모리 배열을 사용하고 함수가 호출 될 때 충돌이 발생합니다.
** 업데이트 : + = 및 운영자를 복사하여 지금 실행하지만 결과는 내가 복사 생성자와 오버로드를 가지고
참고로 몇 가지 큰 음수입니다 = 연산자
// overload +
Polynomial Polynomial::operator+(const Polynomial &right)
{
maxExp = right.maxExp;
poly = new int *[maxExp];
for (int i=0; i < maxExp; i++)
*(poly + i) = new int[2];
Polynomial temp = *this;
for (int i=0; i < maxExp; i++)
{
for (int j=0; j < 2; j++)
{
temp.poly[i][j] = poly[i][j] + right.poly[i][j];
}
}
return temp;
}
'delete poly []'해야 할 것은 무엇입니까? 그것은 제정신이 아닌 것처럼 보입니다. –
왜'std :: vector'를 사용하지 않고 메모리 관리의 두통을 피할 수 있을까요? – NPE
@ NPE 죄송합니다. 아직 벡터에 대해 알지 못해서 사용법을 모르겠습니다. – Casper