2 laowangmomoda laowangmomoda 于 2016.04.24 20:40 提问

C++primer第五版关于第七章类的一个问题

#include
#include
using namespace std;
struct Sales_data{
Sales_data()=default;
Sales_data(const string &s):bookNo(s){}
Sales_data(const string &s,unsigned n,double p):
bookNo(s),units_sold(n),revenue(p*n) {}
Sales_data(istream &is)
{
read(is,*this);
}
Sales_data &combine(const Sales_data &rhs);
string isbn() const {return bookNo;}
double avg_price() const
{
if(units_sold)
return revenue/units_sold;
else
return 0.0;
}
string bookNo;
unsigned units_sold=0;
double revenue=0.0;
istream &read(istream &is,Sales_data &item);
ostream &print(ostream &os,Sales_data &item);
Sales_data add(Sales_data &lhs,Sales_data &rhs);
};
istream &read(istream &is,Sales_data &item)
{
double price=0;
is>>item.bookNo>>item.units_sold>>price;
item.revenue=price*item.units_sold;
return is;
}
ostream &print(ostream &os,const Sales_data &item)
{
os<<item.isbn()<<' '<<item.units_sold<<' '<<item.revenue<<' '<<item.avg_price();
return os;
}
Sales_data add(const Sales_data &lhs,const Sales_data &rhs)
{
Sales_data sum=lhs;
sum.combine(rhs);
return sum;
}
Sales_data &Sales_data::combine(const Sales_data &rhs)
{
units_sold+=rhs.units_sold;
revenue+=rhs.revenue;
return *this;
}
int main()
{
Sales_data data1;
Sales_data data2("hhhh");
Sales_data data3("hhhh",2,3);
Sales_data data4(cin);
}
这是C++primer第五版的7.11题,编译总是提示错误:[Error] ld returned 1 exit status,实在找不到错误在哪了;
求大神看看代码,告诉我哪里错了,不胜感激!

7个回答

CSDNXIAON
CSDNXIAON   2016.04.24 20:52

C++ primer第五版_类
c++primer第五版第七章练习
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

oyljerry
oyljerry   Ds   Rxr 2016.04.24 21:06

用的什么编译器 是否用新编译器vs试试

u013329580
u013329580   2016.04.25 17:19

Main函数定义为int型的话必须要返回一个值吧,在Main函数最后加一句return 0;试一下

On_The
On_The   2016.04.25 23:08

你这个程序有两个错误:
1、主函数里面要加个 return 0;
2、把这个函数istream &read(istream &is,Sales_data &item)改为istream &Sales_data::read(istream &is,Sales_data &item)

改动后程序可以运行

cainiaodetuibian
cainiaodetuibian   2016.04.27 09:04

![图片说明](https://img-ask.csdn.net/upload/201604/27/1461718914_827893.png)图片说明
看图片,你缺少头文件 还缺少输出输入的定义

cainiaodetuibian
cainiaodetuibian   2016.04.27 09:04

图片说明

cainiaodetuibian
cainiaodetuibian   2016.04.27 09:07

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
《C++primer(第五版)》学习之路-第七章:类
【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】   7.1 定义抽象数据类型   1.类的基本思想是数据抽象和封装,数据抽象是一种依赖于接口和实现分离的编程(以及设计)技术。类的接口包括用户所能执行的操作:类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。   2.成员函数通过一个名为th
C++Primer第五版 第七章习题答案(1~10)
1:知识点1:类的定义方法:struct和class两种方法的用法和区别。 知识点2:类内成员的初始化方法:成员初始化列表。编译器会调用构造函数初始化成员,可以被重载。 首先举个例子方便于理解: #include #include #include using namespace std; /* C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct
记录——《C Primer Plus (第五版)》第十章编程练习第十二题
12.编写…个程序,提示用户输入3个数集,每个数集包括5个double值。程序应当实现下列所有功能: a.把输入信息存储到一个3x5的数组中 b.计算出每个数集(包含5个数值)的平均值 c.计算所有数值的平均数 d.找出这15个数中的最大值. e.打印出结果 每个任务需要用一个单独的函数来实现(使用传统C处理数组的方法)。对于任务b,需要编
C++Primer 中文版 第五版 第七章课后习题答案
//7.1 #include #include using namespace std; struct Sales_data { string bookNo; unsigned units_sold; double revenue; }; int main() { double price=0; Sales_data total; Sales_data trans;
C++ Primer 第五版答案(全书各章节代码)
C++ Primer 第五版答案(全书各章节代码),包含全书各个章节的代码。
C++Primer第五版 第七章习题答案(31~40)
31:知识点1:可以将类当作一种类型来看待,两个类即使成员部分完全相同,也属于不同的类型 知识点2:类允许包含指向它自身类型的指针或者引用 知识点3:创建一个类的对象之前必须先定义该类,仅仅声明是无法让编译器了解到该类需要多少空间的 #ifndef Cccc//第一次包含本头文件时,#ifndef判断为真,预处理器将处理后面的内容直到#endif,此时的预处理变量Cccc已定义 #defin
C++ Primer Plus第六版 第七章 编程练习答案
/******************************************************************************************************************* Author : Yuuji Blog : blog.csdn.net/acm_yuuji Time : 2014/07/18 From : C++ Prime
C++ PRIMER PLUS (第六版) 中文版 第七章编程练习答案
1.  #include void main() { using namespace std; double thpjs(int x, int y); int x, y; while (1) { cout cin >> x >> y; if (x == 0 || y == 0) break; cout } cout } double thpjs(in
C++Primer第五版 第七章习题答案(41~50)
41、42知识点1:委托构造函数:一个委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程。 class OH{ OH(string s, int a, int b):book(s),price(a),sale(b){} //三参数构造函数的参数列表和函数体首先被执行 OH():OH("",0,0);//默认构造函数又委托给了三参数构造函数 OH (istream& is):OH(){}/
C Primer Plus(第五版)中文版的问题
第17章 高级数据表示 17.3抽象数据类型(ADT) 494页,中间段落 “现在,还是让我们使用List类型的第一种定义。重要的一点是要考虑清楚如下声明:” “Listmovies;” “是在建立一个列表,而不是在建立一个指向节点的指针或是建立一个结构。” 英文版第5版原文为 “Fornow, let's stick to the first definition of a L