2013-11-28 51 views
0

因此,對於作業,我們需要創建一個名爲錢包的類,它將代表硬幣的集合,並從那裏添加功能。我是一個多數通過轉讓的方式,但我碰釘子這種方法當方法只有一個參數時,如何比較兩個對象?

的isEqual

此方法將確定兩個錢包對象是相等的。它需要一個參數:一個Purse對象並返回一個布爾值。傳遞給此方法的參數是將用於比較的第二個Purse對象。

如果它們的值相等,則兩個Purse對象被視爲相等。

請注意,我們向main提供了代碼,並且必須提供類和方法的代碼。

主要外觀的有關塊這樣的:

cout << endl << endl 
<< "purse5 == purse6 is " << boolalpha << purse5.isEqual(purse6) << noboolalpha << endl 
<< "purse5 < purse6 is " << boolalpha << purse5.isLessThan(purse6) << noboolalpha << endl 
<< "purse5 > purse6 is " << boolalpha << purse5.isGreaterThan(purse6) << noboolalpha << endl; 

現在,如果方法接受兩個參數我不會有問題,因爲我將能夠做這樣的事情:

bool IsEqual(int x, int y) 
{ 
return (x == y); 
} 

問題是,我非常遺憾,我不知道該怎麼做,如果有人能夠至少指出我正確的方向,我會非常感激。感謝您的時間。

+0

當方法是在類內聲明,它可以訪問它的成員。所以你只需要同一個班的另一個對象來比較。 –

回答

4

如果是的Purse一員,你會使用這樣的:

Purse p1, p2; 
bool OK = p1.isEqual(p2); 

的實現通常將依賴於實例和爭論雙方的成員。例如:

class Purse 
{ 
public: 
    explicit Purse(int i) : i_(i) {} 
    bool isEqual(const Purse& other) const 
    { 
    return i_ == other.i_; 
    } 
private: 
    int i_; 
}; 
0

在錢包類:

bool IsEqual(Purse a) 
{ 
    return (*this == a); 
} 

呼叫它:

Purse a, b; 
bool c = a.IsEqual(b);