ben bu hataHata: operatör + için maç benim kod derlemeye çalıştığınızda
main.C:270:16: error: no match for ‘operator+’ (operand types are ‘LargeInt’ and ‘LargeInt’)
result = a + b;
i bir kaç şey denedim ama bunu düzeltmek için nasıl bilemiyorum olsun (işlenenler türleri LargeInt ve LargeInt vardır). Bu, ana dosyamdaki sorunu veren kısımdır. Ben Test dosyadaki her koşul henüz zaman ancak herhangi at parçalarını test oldu dikkate almamış
LargeInt& operator+(const LargeInt& a, const LargeInt& b)
{
LargeInt temp;
if(a.sign == positive && b.sign == positive)
{
if(a.len > b.len)
{
for(int i = 0; i < a.len; i++)
{
temp.largeInt[i] = a.largeInt[i] + b.largeInt[i];
}
}
else if(b.len > a.len)
{
for(int i = 0; i < b.len; i++)
{
temp.largeInt[i] = a.largeInt[i] + b.largeInt[i];
}
}
for(int i = temp.len; i > 0; i--)
{
cout << temp.largeInt[i];
}
}
return temp;
}
: Burada
cout << "TEST: operator +" << endl;
a = LargeInt(11529);
b = LargeInt(489);
d = LargeInt(-11529);
e = LargeInt(-489);
LargeInt result;
cout << " CASE: 11529 + 489 = 12018" << endl;
result = a + b;
cout << " RESULT: " << result << endl;
cout << " CASE: -11529 + -489 = -12018" << endl;;
cout << " RESULT: " << result << endl;
cout << " CASE: -11529 + 489 = -11040" << endl;;
cout << " RESULT: " << result << endl;
cout << " CASE: 11529 + -489 = -11040" << endl;;
cout << " RESULT: " << result << endl;
cout << "DONE" << endl;
'+' operatörü benim tanımında kodudur tam olarak bu hatanın ne anlama geldiğini veya nasıl düzeltileceğini anlatan yardım için teşekkür ederiz.
Derleyici sorunundan emin değilsiniz, ancak operatörünüz + kesinlikle yanlıştır ve tanımlanmamış davranışlarla sonuçlanır: kapsam dışı kalan ve zaten yok olan geçici bir başvuruya geri dönülüyor. Operatör geri döndüğünde imha edilen 'temp' referansı döndürüyor. Derleyici hatasını araştırmak için, [mcve] göndermeniz gerekir. –
Bu, operatör + 'bir üye işlevi midir? Arkadaş fonksiyonu? Ya da ne? –
Arkadaş oldular – programmer0980