创建一个带有限制的数字数据类型,一个介于 -10 和 10 之间的整数

Creating a digit Datatype with restriction, an int between -10 and 10

本文关键字:一个 之间 整数 数字 有限制 创建 数据类型      更新时间:2023-10-16

>我的应用程序中确实需要一个新的数据类型,它只会存储从-10到10的数字。有没有办法创建具有特定值的数据类型,如果值无效,则会引发错误?我使用过:

typedef int digit;

发生的事情是创建了一个实际上是 int 的新数据类型。我也试过这个:

typedef int{-10 > int value < 10} digit;

但它提出了这个:

exit status 1
main.cpp:3:12: error: expected unqualified-id before '{' token
typedef int{-10 > int value < 10} digit;
           ^
main.cpp:3:35: error: 'digit' does not name a type; did you mean 'div_t'?
typedef int{-10 > int value < 10} digit;
                                    ^~~~~
                                  div_t
C++没有

这样的功能。在某些情况下会很好,但用语言提供并不平凡(在某种程度上使用效率低下)。

您可以创建一个类来包装int并执行自己的边界检查(或者您希望类型的行为方式)。然后,您还必须包装所有算术运算。不是太繁重,但脖子有点疼。而且,同样,效率不高(每个算术运算都需要一个分支!

通常,我们只使用int,并在需要时在更高级别检查代码逻辑。在不知道您的用例的情况下,我无法提出具体建议。

下面是一个示例,可以完成其中的一半。

相关文章: