例如,假设您正在设计一个名为 的对象类Car
,它支持用符号 表示的二元运算+
,即您可以执行car1 + car2
wherecar1
和car2
are 的实例Car
当您刚刚完成抽象代数课程时,您尝试Car
根据数学群论将课程设计为一个“群”,因此该课程Car
具有以下属性:
car1 + car2
返回另一个实例Car
(car1 + car2) + car3 == car1 + (car2 + car3)
- 对于任何实例
carx
,都有car0
这样一个实例carx + car0 == car0 + carx == carx
- 每个实例
carx
都有它的逆carx_inv
,使得carx + carx_inv == carx_inv + carx == car0
你能给我一个例子,这种实现是必要的,或者至少是有益的。