在Stock
类中,我们无法访问total_value
,但是我们可以通过内联代码来获取total_value
的值。如下示例:
class Stock
{
private:
double total_value;
public:
double total() const { return total_value; };
};
当我们创建两个Stock
类对象,通过比它们两个之间total_value
值,并返回较大的那个。在这个时候,我们可以这样做:将两个要比较的对象提供给成员函数,然后将方法的答案结果回调给调用程序
。
如下:
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);
说明:
1.如上,出于效率考虑,我们按引用来传递参数,也就是说,
topValue()
方法使用一个类型为const Stock &
的参数.
2.如objTop = obj1.topValue(obj2);//1. objTop = obj2.topValue(obj1);//2.
比较obj1
和obj2
两个对象。第一种隐式访问obj1
,显式访问obj2
;第二种显式访问obj1
,隐式访问obj2
。无论使用哪一种方式,都是讲这两个对象进行比较,并返回total_value
值较高的那个对象。