С++
Напишите класс Number. Этот класс будет олицетворять целое число типа int.
У него должен быть конструктор от одного числа типа int.
Метод Value(), который возвращает копию числа, которое хранится в Number. С помощью Value() нельзя давать возможность менять объект. А именно, строчка имя.Value() = ...; не должна даже компилироваться(см. пример)
operator+ и operator += для Number.
operator- и operator -= для Number.
Корректно и эффективно реализуйте вышеперечисленные методы как для константных, так и не константных объектов.
В систему отправляйте только код структуры
Пример работы
Number a(10);
Number b(15);
Number c = a + b;
std::cout << c.Value(); // 25
c += Number(100);
std::cout << c.Value(); // 125
/*c.Value() = 0; */ // CE
std::cout << c.Value(); // 125
Ответы
#include <iostream>
class Number {
public:
Number(int value) : m_value(value) {}
int Value() const { return m_value; }
Number operator+(const Number& other) const {
return Number(m_value + other.m_value);
}
Number& operator+=(const Number& other) {
m_value += other.m_value;
return *this;
}
Number operator-(const Number& other) const {
return Number(m_value - other.m_value);
}
Number& operator-=(const Number& other) {
m_value -= other.m_value;
return *this;
}
private:
int m_value;
};
int main() {
Number a(10);
Number b(15);
Number c = a + b;
std::cout << c.Value() << std::endl; // 25
c += Number(100);
std::cout << c.Value() << std::endl; // 125
//c.Value() = 0;
std::cout << c.Value() << std::endl; // 125
return 0;
}