照着书上写了一个类,报错

JPF1024 2014-03-23 10:59:52
头文件:

/*************************************************************************
> File Name: test.7.1.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年03月23日 星期日 22时39分49秒
************************************************************************/

#include<iostream>
using namespace std;
//Sales_data类改进版.
//需自己重写.
//此版本参照7.1.2示例.

struct Sales_data
{
//新成员,关于Sales_data对象的操作.
string isbn() const {return bookNo;}
Sales_data& combine(const Sales_data&);
double avg_price() const;
//下面的基本无变化.[与64页相比]
string bookNo;
unsigned units_sold=0;
double revenue = 0.0 ;
};

//Sales_data的非成员接口函数.
Sales_data add(const Sales_data&,const Sales_data&);
ostream &print(ostream&,const Sales_data&);
istream &read(istream&,Sales_data&);


主函数代码:

/*************************************************************************
> File Name: 7.1.1.demo.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年03月23日 星期日 22时28分09秒
************************************************************************/

#include<iostream>
#include"test.7.1.h"
using namespace std;
//改进的Sales_data类
int main()
{
Sales_data total;//保存当前求和结果的变量
if(read(cin,total))//读入第一笔交易
{
Sales_data trans;//保存下一条交易的数量.
while(read(cin,trans))//读入剩余的交易
{
if(total.isbn()==trans.isbn())//检查isbn
{
total.combine(trans);//更新变量total当前的值
}else
{
print(cout,total) << endl;//输出结果.
total = trans;//处理下一本书.
}
}
print(cout,total) << endl;//输出最后一条交易
}else
{//没有输入任何信息.
cerr << "No Data?" << endl;//通知用户.
}
return 0;
}


编译及报错信息:
g++ 7.1.1.demo.cpp -o 7.1.1.demo.out -std=c++0x
/tmp/ccb6isY4.o: In function `main':
7.1.1.demo.cpp:(.text+0x2c): undefined reference to `read(std::istream&, Sales_data&)'
7.1.1.demo.cpp:(.text+0xc4): undefined reference to `Sales_data::combine(Sales_data const&)'
7.1.1.demo.cpp:(.text+0xd9): undefined reference to `print(std::ostream&, Sales_data const&)'
7.1.1.demo.cpp:(.text+0x10e): undefined reference to `read(std::istream&, Sales_data&)'
7.1.1.demo.cpp:(.text+0x13f): undefined reference to `print(std::ostream&, Sales_data const&)'
collect2: error: ld returned 1 exit status

求大神指导,刚开始学习类,觉得一点也不习惯,特别是什么时候用引用,什么时候用指针
...全文
193 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2014-03-26
  • 打赏
  • 举报
回复
引用 1 楼 ylmszhanghua 的回复:
1. 明明是个结构体,偏要说类。 2. struct Sales_data { //新成员,关于Sales_data对象的操作. string isbn() const {return bookNo;} Sales_data& combine(const Sales_data&); double avg_price() const; //下面的基本无变化.[与64页相比] string bookNo; unsigned units_sold=0; double revenue = 0.0 ; }; 没见过这样定义的。也没试过在这里赋值。
后来自己写了个简单的,终于可以了,谢谢。
「已注销」 2014-03-24
  • 打赏
  • 举报
回复
你的方法没有定义,只有声明
vancouvery 2014-03-24
  • 打赏
  • 举报
回复
方法只有声明,没有实现,找不到函数的入口地址。
零度的折翅 2014-03-24
  • 打赏
  • 举报
回复
方法只有声明,没有实现,找不到函数的入口地址。
abzhang2 2014-03-23
  • 打赏
  • 举报
回复
那些函数好像没有实现代码样
abzhang2 2014-03-23
  • 打赏
  • 举报
回复
1. 明明是个结构体,偏要说类。 2. struct Sales_data { //新成员,关于Sales_data对象的操作. string isbn() const {return bookNo;} Sales_data& combine(const Sales_data&); double avg_price() const; //下面的基本无变化.[与64页相比] string bookNo; unsigned units_sold=0; double revenue = 0.0 ; }; 没见过这样定义的。也没试过在这里赋值。

64,648

社区成员

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

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