我有这个问题:
我想创建一个支持 +、-、*、/ 运算符的通用类。例如一个矩阵类。问题是,有些数据类型支持所有上述运算符,有些支持其中的一部分,有些则根本不支持。我想让我的班级认识到上述哪些运算符受支持,如果其中一些不受支持,我希望看到编译时间错误。
例子:
Matrice<int>
: 我们可以做 +, -, /, * 因为 int 有这些运算符重载/定义
Matrice<string>
:我们只能做+,因为字符串只有+重载/定义,如果我们尝试
Matrice<string> a = new Matrice<string>;
Matrice<string> b = new Matrice<string>;
Matrice<string> c = a*b;
我们应该得到一个编译时间错误
Matrice<CustomClass>
:如果 CustomClass 只有 / 和 + 重载(例如),则Matrice<CustomClass>
应该只支持 / 和 + 运算符