[英]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.