繁体   English   中英

在一个 function 中重载多个运算符

[英]overloading multiple operators in one function

是否可以在一个运算符重载中重载多个运算符?

我想做这样的事情:

template<operator O>
MyClass operator<O>(const MyClass & other) {
return this.x <O> other.x;
}

其中 x 是 class 的 int 属性。

这样就可以一次重载所有 int 运算符,这意味着我可以使用一个 function、重载 +、-、* 等来复制粘贴代码一百万次并只更改一行。

在我的具体示例中,我有一个包含两个整数的结构点,以及另一个名为 Pointf 的结构,其中包含两个浮点数,我希望能够将它们彼此相加、相减、相乘和除法,或者使用一个 int 值,目前我用十几个函数来做,但我想只用几个函数来做,我也想覆盖 +=、-=、*- 和 /=。

是否可以在一个运算符重载中重载多个运算符?

我想做这样的事情:

template<operator O>
MyClass operator<O>(const MyClass & other) {
return this.x <O> other.x;
}

其中 x 是 class 的 int 属性。

这样就可以一次重载所有 int 运算符,这意味着我可以使用一个 function、重载 +、-、* 等来复制粘贴代码一百万次并只更改一行。

在我的具体示例中,我有一个包含两个整数的结构点,以及另一个名为 Pointf 的结构,其中包含两个浮点数,我希望能够将它们彼此相加、相减、相乘和除法,或者使用一个 int 值,目前我用十几个函数来做,但我想只用几个函数来做,我也想覆盖 +=、-=、*- 和 /=。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM