С++
Напишите класс 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


aurri: Нейросеть же может легко создать код по такому условию. Или тебе такое не подходит?

Ответы

Ответ дал: honvert
0

#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;

}

Вас заинтересует