C++编程问题请大神赐教谢谢。。 5C

代码如下,请问那句top=&top->topval(stocks[st]) 到底是啥意思,可以具体讲解一下吗?
// ConsoleApplication74.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
#include "stock20.h"

const int STKS = 4;
int main()
{
stock tocks[STKS] = {
stock("Nanosmart",12,20.0),
stock("Boffo Objects",200,2.0),
stock("Monolithic Obelisks",130,3.25),
stock("Fleep Enterprrises",60,6.5)
};
std::cout << "Stock holdings:\n";
int st;
for (st = 0; st < STKS; st++)
stocks[st].show();
const stock*top = &stocks[0];
for (st = 1; st < STKS; st++)
top = &top->topval(stocks[st]);
std::cout << "\nMost valuable holding:\n";
top->show();
return 0;
}

4个回答

比较大小,返回大的那个值的实例的指针

const Stock & Stock::topval(const Stock & s) const
{
if (s.total_val > total_val)
return s;
else
return *this;
}
百度下才知道你这是书上的,那个stock20.cpp也不贴。。。
能问问你这是在干啥吗?

u014314850
让他让 回复qq_41517828: 你这样看 top = &(top->topval(stocks[st]));
一年多之前 回复
u014314850
让他让 回复qq_41517828: top->topval(stocks[st])返回引用,就是实例本身,然后&取址给top指针。不是&top,&和->优先级了解下
一年多之前 回复
qq_41517828
qq_41517828 想明白了
一年多之前 回复
qq_41517828
qq_41517828 sorry , 问一下那个top=&top 是啥意思,看不懂
一年多之前 回复

const Stock & Stock::topval(const Stock & s) const
{
if (s.total_val > total_val)
return s;
else
return *this;
}
比较stock对象中total_val的大小 反回total_val大的那一个对象的引用,& 这个放在变量之前就是取变量的地址,放在变量之后就是引用变量本身
&top->topval(stocks[st])这个就是取比较大的那一个stock的地址,你这个功能 就是取最大的那个stock

xingjianfengaa
xingjianfengaa 因为top本身就是一个stock指针stock*,所以它必须指向对象的地址,
一年多之前 回复

& 是取地址操作符~~~~

打开#include "stock20.h",应该还有一个stock20.cpp,topval(stocks)的实现应该在这个里面有。
从字面的理解,是找到最大值。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问