#include <iostream.h>
class RINT
{
private:
int v;
void assign(int i) {if(i&~07777) throw Bad_range(); v = i;} // <== if(i&~07777) !!!
int Bad_range() {cout << endl << "Error" << endl; return 1;}
public:
RINT(int i) {assign(i);}
RINT() {v = 0;}
RINT operator+(RINT);
RINT operator-(RINT);
void f() {cout << v << endl;}
};
RINT RINT::operator-(RINT arg)
{
return v - arg.v;
}
RINT RINT::operator+(RINT arg)
{
return v + arg.v;
}
int main ()
{
RINT a = RINT(10);
RINT b = RINT(100);
RINT z = a - b;
a.f();
b.f();
z.f();
return 0;
}
Данный класс, позволяет производить сложение. Вычетиние(из большего меньшее). Задача:
Диаппазон чисел с которыми работает данный клас 0-4095(строка помеченна в коде)
111111111111 => 07777 => 4095
bin oct dec
Как поправить данный клас, на работу с отрицательными числами. Допустим от 4094 до 4095?
Свой клас типа RING (как выйти на отрицательные числа? (if(i&~07777)))
Модератор: Модераторы разделов
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Свой клас типа RING
сменитьна???
Код: Выделить всё
if(i&~07777) throw Bad_range();Код: Выделить всё
if(i<-4094 || i>4095) throw Bad_range();слава роботам!