如何设置整数的间隔?

时间:2013-08-03 12:41:03

标签: c++ integer range

我知道这是一个非常noob-ish的问题,但我如何定义整数的间隔?

如果我希望整数X56<= X <=1234,我该如何声明X?

1 个答案:

答案 0 :(得分: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);
}  

stackoverflow上有一个question就像你的问题一样。它有一个更完整的版本我正在做的事情,它可能有点难以为初学者消化,但它似乎正是你想要的。