繁体   English   中英

运算符重载-重载*

[英]operator overloading - overloading *

我想重载*运算符以在我的对象和double类型/同一对象类型之间进行乘法。 我两次让操作员超载

Rational operator*(const Rational&) const;
Rational operator*(double) const;

第一个涉及t1 * t2的情况;

第二个案例涵盖了t1 * 3.8474的情况;

但是,我还要涵盖第三种情况3.8474 * t1;

我该怎么做 ? 我的想法是告诉我要执行此操作,我需要重载double类型*运算符,但我不知道是否可能?

您可以通过重载全局operator*()来执行3.8474 * t1

Rational operator*(double, const Rational&);

通常,我通常使用全局函数而不是成员函数来重载运算符。 例如,可以使用以下全局函数等效地实现您拥有的成员函数:

Rational operator*(const Rational&, const Rational&);
Rational operator*(const Rational&, double);

暂无
暂无

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

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