1

Тема: завдання*WALL*

Клас Hugelnteger (великі цілі числа). Клас містить масив  з 40 елементів для збереження великих цілих чисел. Необхідно передбачити операцію додавання та віднімання чисел, а також операції вводу та виводу.

2

Re: завдання*WALL*

Попередження! Цю помилку має бути виправлено перед відправленням повідомлення:
було відкрито всередині себе, що не дозволено. не можу чере цю помилку надіслати те що в ене получилось. проблема в тому що він в мене не компілюється

3

Re: завдання*WALL*

#include<iostream>
using namespace std;
const int n = 40;
class HugeInteger {
    long int array[n];
public:
    HugeInteger() : array{ 0 } {};
    HugeInteger(long int _arr[n]) {
        for (int a = 0; a < n; a++) {
            _arr[a] = array[a];
        }
    }
    friend HugeInteger operator +(const HugeInteger& obj1, const HugeInteger& obj2) {
        for (int a = 0; a < n; a++) {
            return HugeInteger(obj1.array[a] + obj2.array[a]);
        }
    }
    friend HugeInteger operator -(const HugeInteger& obj1, const HugeInteger& obj2) {
        for (int a = 0; a < n; a++) {
            return HugeInteger(obj1.array[a] - obj2.array[a]);
        }
    }
    friend ostream& operator<< (ostream& out, const HugeInteger& obj)
    {
        for (int a = 0; a < n; a++) {
            out << obj.array << endl;
        }
        return out;
    }
    friend istream& operator>> (istream& in, HugeInteger& obj)
    {
        for (int a = 0; a < n; a++) {
            in >> obj.array[a];
        }
        return in;
    }
};

int main() {
    long int massive[n];

    HugeInteger obj1(massive), obj2(massive);

    cout << "Enter first object`s massive: "; cin >> obj1;
    cout << "Enter second object`s massive: "; cin >> obj2;

    cout << "First massive: " << obj1 << endl;
    cout << "Second massive: " << obj1 << endl;

    cout << "Sum: " << obj1 + obj2 << endl;
    cout << "Diff: " << obj1 + obj2 << endl;
}

4

Re: завдання*WALL*

Це автоматичний переклад повідомлення про помилку? Не треба так. Дослівно - яку повідомлення пише компілятор? У якому рядку?

5 Востаннє редагувалося koala (22.10.2022 11:01:06)

Re: завдання*WALL*

У мене компілятор показує першу помилку в
friend HugeInteger operator +(const HugeInteger& obj1, const HugeInteger& obj2)
Вам треба в циклі все скласти, а потім повернути значення. А ви намагаєтеся повертати значення всередині циклу, тобто фактично після першої ітерації. Виправте це.

6

Re: завдання*WALL*

koala написав:

Це автоматичний переклад повідомлення про помилку? Не треба так. Дослівно - яку повідомлення пише компілятор? У якому рядку?

'<'<function-style-cast>': cannot convert from 'long' to 'Hugeinteger' в 15 та 20 рядку

7

Re: завдання*WALL*

koala написав:

У мене компілятор показує першу помилку в
friend HugeInteger operator +(const HugeInteger& obj1, const HugeInteger& obj2)
Вам треба в циклі все скласти, а потім повернути значення. А ви намагаєтеся повертати значення всередині циклу, тобто фактично після першої ітерації. Виправте це.

Можна будь-ласка приклад?

8

Re: завдання*WALL*

Вибачте, але вам явно зарано займатися класами. Ви не розумієте, як керівні конструкції працюють. Спробуйте щось простіше зробити.

Подякували: pelowe14081

9

Re: завдання*WALL*

koala написав:

Вибачте, але вам явно зарано займатися класами. Ви не розумієте, як керівні конструкції працюють. Спробуйте щось простіше зробити.

Ну це так,але лабу треба здавати