出错了,帮忙看看

Afdadfssff 2015-10-07 09:47:23
const Stock & topval(const Stock & s) const;

const Stock & Stock::topval(const Stock & s) const
{
if (s.total_val > total_val)
return s;
else
return *this;
}

上面是函数声明和定义,代码太多不全贴出了,下面是代码

#include <iostream>
#include "stock20.h"

const int STKS = 4;
int main()
{{

Stock stocks[STKS] = {
Stock("NanoSmart", 12, 20.0),
Stock("Boffo Objects", 200, 2.0),
Stock("Monolithic Obelisks", 130, 3.25),
Stock("Fleep Enterprises", 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;
}
再下面是错误提示,问下问题出在哪?应该怎么改能编译通过?
1>d:\my documents\visual studio 2010\projects\news\news\1.cpp(24): error C2678: 二进制“=”: 没有找到接受“const Stock”类型的左操作数的运算符(或没有可接受的转换)
1> d:\my documents\visual studio 2010\projects\news\news\stock20.h(23): 可能是“Stock &Stock::operator =(const Stock &)”
1> 尝试匹配参数列表“(const Stock, const Stock)”时
1>d:\my documents\visual studio 2010\projects\news\news\1.cpp(27): error C2819: “Stock”类型没有重载成员“operator ->”
1> d:\my documents\visual studio 2010\projects\news\news\stock20.h(7) : 参见“Stock”的声明
1> 是否改用“.”?
1>d:\my documents\visual studio 2010\projects\news\news\1.cpp(27): error C2232: “->Stock::show”: 左操作数有“class”类型,使用“.”
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubuweiright 2015-10-07
  • 打赏
  • 举报
回复
const Stock top = stocks[0]; //改为Stock top = stocks[0]; 试一下
二班的码农 2015-10-07
  • 打赏
  • 举报
回复
top定义为const,不能理发,在定义时把const去掉试试

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧