簡體   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