2016-01-24 106 views
-1

我寫了一段代碼。有一個以分子和分母作爲其私人成員的Rational類。現在有一個方法toString(),它應該返回有理數作爲一個字符串(「分子/分母」)。對於我來說不明原因,它不會返回任何東西。代碼:字符串函數不返回

#include <iostream> 
#include <iomanip> 
#include <string> 
#include <sstream> 

using namespace std; 

class Rational { 
    long int n, d; 
public: 
    Rational(long int n, long int d) { 
     this->n = n; 
     this->d = d; 
    } 
    bool equals(); 
    int compareTo(); 
    std::string toString() { 
     string resN, resD; 
     string str; 
     ostringstream convertN, convertD; 
     convertN << this->n; 
     convertD << this->d; 
     resN = convertN.str(); 
     resD = convertD.str(); 

     str = resN + "/" + resD; 
     return str; 
    } 
}; 

int main() { 
    Rational rat(2, 3); 
    rat.toString(); 

    return 0; 
} 

首先我想用的東西轉換算法是錯誤的,我試圖返回任何東西,但仍然一無所獲。先謝謝你。

+2

它確實返回字符串,然後把它扔掉。 (順便說一句,比爾希克斯是一個好喜劇演員,而他已經死了,我不認爲你是他) –

+0

沒有詳細的選項:'string toString(){ostringstream s; s << n <<'/'<< d;返回s.str();}'。 – molbdnilo

回答

2

如果要輸出的字符串,可以使用cout << rat.toString();

0

它返回的東西,你只是不使用它返回的值。我知道像MATLAB這樣的語言,它可以打印出結果。在這裏,你必須自己做。試試這個:

int main() { 
    Rational rat(2, 3); 
    std::string theString = rat.toString(); 
    cout << "The result is: " << theString << endl; 

    return 0; 
}