Написал код для решения задачи, но он выдает ошибку. Подскажите в чем проблема. | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Написал код для решения задачи, но он выдает ошибку. Подскажите в чем проблема.

https://code.sololearn.com/c2PNKCrWcklP/?ref=app Вот задача:Вы создаете программу для управления банковскими счетами Данный код объявляет класс Account с членами balance и interest. Банк просит вас добавить новый функционал, объединив два счета вместе, в результате чего появится новый с суммой балансов и процентов оригинальных. Перегрузите оператор + для сложения двух объектов Account и добавления балансов и процентов. А вот код который надо изменить: #include <iostream> using namespace std; class Account { private: int balance=0; int interest=0; public: Account() {} Account(int a): balance(a) { interest += balance/10; } int getTotal() { return balance+interest; } //введите код сюда }; int main() { int n1, n2; cin >> n1 >> n2; Account a(n1); Account b(n2); Account res = a+b; cout << res.getTotal(); } Ввод данных 1000, 8500. Вывод 10450

4th Jan 2021, 10:04 PM
Михаил Михаил
Михаил Михаил - avatar
2 Answers
0
Вы пытаетесь приравнять метод класса к значению типа int (21-я строка): res.getTotal()=this->getTotal()+i.getTotal(); Значение счёта задаётся в конструкторе класса, следовательно, его нужно задавать при объявлении класса. Вот исправленный вариант метода с перегрузкой: Account operator+(Account i) { Account res(this->getTotal()+i.getTotal()); return res; }
5th Jan 2021, 8:40 PM
Nikolay Burmistrov
Nikolay Burmistrov - avatar
0
Спасибо огромное)
6th Jan 2021, 1:42 PM
Михаил Михаил
Михаил Михаил - avatar