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