在 C++ 中,我们可以为每个整数创建一个 class 吗?

In C++, can we create a class for each integer?

我需要创建一个 class NumberModuloN。对于每个正整数 N,应该有一个不同的 class。最优雅的方法是什么?

以下是更多详细信息:数据由 0N-1 范围内的单个整数组成。可以使用一些 public 运算符重载方法对其进行修改,例如 +*-++

想法是,例如,numberModulo100 的对象与 numberModulo99 的任何对象无关。加减乘除都没有意义

我想到的一件事是为 N 使用一个在构造函数中初始化的常量变量。这里引用常量变量。但问题是,现在每个二元运算符方法都必须在继续之前检查两个操作数的 N 是否匹配。不是很优雅。

我需要类似于 C++ 模板的东西,它为每种数据类型提供不同的 class。我只需要为每个正整数设置一个不同的 class。

您可能会在模板中使用非类型参数,因此,类似于:

template <std::size_t N>
struct NumberModuloN
{
    /*..*/
};