我正在爲我的項目做一個小理性類,並且我重載了所有的aritmethic操作符。那麼,當我嘗試重載operator =我有一個小的,現在我不知道是我的問題(我不知道它是如何工作的)或我wroten代碼的問題(我寫它壞)這裏是代碼:operator = in C++(11)工作方向
class rational{
public:
double& operator=(double& d){
d= this->num/this->den;
return d;
}
double& operator=(rational& r){
double d= r.num/r.den;
return d;
}
double& operator=(){
double d= this->num/this->den;
return d;
}
}
好吧,有什麼不對?什麼是對的? (我認爲這一切都是錯的,哈哈)
我的目標是做到這一點:
int main(){
rational r(4, 5);
double d= r;
}
我能做到嗎?如果是的話,怎麼樣?
你向我們展示整個類或只是其中的一部分?如果它是整個事情,你需要定義一個構造函數,它需要2個雙打,而不是賦值操作符來讓你的例子編譯。另外,典型的'operator ='實現返回對同一個類實例的引用,而不是對輸入參數的引用。 – Praetorian
我想你正在尋找'operator double'。 – chris
謝謝!我不知道存在操作符double ...謝謝!那麼......我可以重載「所有」類型的操作符嗎?我不知道那個感謝所有的答案! – DrkDeveloper