在Stock類中,我們無(wú)法訪問(wèn)total_value,但是我們可以通過(guò)內(nèi)聯(lián)代碼來(lái)獲取total_value的值。如下示例:
class Stock
{
private:
double total_value;
public:
double total() const { return total_value; };
};
當(dāng)我們創(chuàng)建兩個(gè)Stock類對(duì)象,通過(guò)比它們兩個(gè)之間total_value值,并返回較大的那個(gè)。在這個(gè)時(shí)候,我們可以這樣做:將兩個(gè)要比較的對(duì)象提供給成員函數(shù),然后將方法的答案結(jié)果回調(diào)給調(diào)用程序。
如下:
const Stock & topValue(const Stock & s) const;
const Stock & Stock::topValue(const Stock &s)const
{
if (s.total_value > total_value)
{
return s;
}
else
{
return *this;
}
}
Stock obj1 = Stock();
Stock obj2 = Stock();
Stock objTop;
objTop = obj1.topValue(obj2);
objTop = obj2.topValue(obj1);
說(shuō)明:
1.如上,出于效率考慮,我們按引用來(lái)傳遞參數(shù),也就是說(shuō),
topValue()方法使用一個(gè)類型為const Stock &的參數(shù).
2.如objTop = obj1.topValue(obj2);//1. objTop = obj2.topValue(obj1);//2.比較obj1和obj2兩個(gè)對(duì)象。第一種隱式訪問(wèn)obj1,顯式訪問(wèn)obj2;第二種顯式訪問(wèn)obj1,隱式訪問(wèn)obj2。無(wú)論使用哪一種方式,都是講這兩個(gè)對(duì)象進(jìn)行比較,并返回total_value值較高的那個(gè)對(duì)象。