2013-08-03 3 views

ответ

1

Лучше всего было бы создать свой собственный целочисленный класс с ограничениями на нем и перегруженных операторов, как +, * и == в основном все опам нормальное число может иметь. Вы должны будете решить поведение, когда число будет слишком высоким или слишком низким, я дам вам начало в классе.

struct mynum { 
    int value; 
    static const int upper = 100000; 
    static const int lower = -100000; 
    operator int() { 
     return value; 
    } 
    explicit mynum(int v) { 
     value=v; 
     if (value > upper)value=upper; 
     if (value < lower)value=lower; 
    } 
}; 
mynum operator +(const mynum & first, const mynum & second) { 
    return mynum(first.value + second.value); 
} 

Существует question на StackOverflow уже нравится ваш вопрос. У этого есть более полная версия того, что я делал, это может быть немного трудно переварить для новичка, но это, кажется, точно, что вы хотите.

+0

Мы изучаем Pascal в нашей школе, а не C++, а в Pascal вы можете написать: type natNo = 0..999; var x: natNo; например. Я думал, что вы тоже можете сделать что-то подобное на C++. –

+0

Я не слишком знаком с pascal, но вы не можете сделать это на C++ с какой-то работой, так как вы можете видеть, что теперь я начал класс, чтобы вы его работали так же, как int, вам придется перегружать всех операторов – aaronman

+0

Хорошо, спасибо, я попробую. –

Смежные вопросы