代码:
#include<iostream>
using namespace std;
class Stock{
...
const Stock & Stock::topval(const Stock & s) const{
if (s.total_val > total_val)
return s;
else
return *this;
}
int main(){
Stock stocks[5];
const Stock* top = &stocks[0];
top = &top->topval(stocks[1]);
}
理解:(1)top->用于访问top指向的对象的成员或成员函数。
(2) &用来取地址。
因此,top指向的对象调用了函数Stock::topval,接着,函数Stock::topval返回对象的引用,再用&符号取地址,更新top指向的位置。