用"类名"作为类型有什么实际作用?return 究竟返回的是什么东西?问题见注释。

Be_called_進 2014-01-09 01:08:12
以下程序是网上的一个例子,我照着做,有几点不懂:
#include<iostream>
using namespace std;

class book
{
public:
int num;
float price;
book *next; //这行不懂。
};
book *head=NULL; //这行为什么要用book作为类型?
book *creat() ////这行为什么要用book作为类型?把函数creat定义为指针有什么好处?
{
book*p1,*p2; //这行为什么要用book作为类型?为什么不是int之类的?
p1=new book;
head=p1;
p2=p1;
cout<<"Please enter the number of the book,and end of '0':"<<endl;
cin>>p1->num;
if(p1->num!=0)
{
cout<<"Please enter the price of the book:"<<endl;
cin>>p1->price;
}
else
{
delete p1;p2=NULL;p2->next=NULL;head=NULL;
return head;//这里的"return head"返回的究竟是什么?起什么作用?
}
while(p1->num!=0)
{
p2=p1;
p1=new book;
cout<<"Please enter the number of the book,and end of '0':"<<endl;
cin>>p1->num;
if(p1->num!=0)
{
cout<<"Please enter the price of the book:"<<endl;
cin>>p1->price;
}
p2->next=p1;
}
delete p1;
p2->next=NULL;
return head;//这里的"return head"返回的究竟是什么?起什么作用?
}
int main()
{
creat();
return 0;
}
...全文
276 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
思远作细 2014-01-09
  • 打赏
  • 举报
回复
其实真该建议不要看这种代码。如果要介绍链表,那就用C好了,不要整个C++的类。基础概念就是要纯粹,东西多了杂了让新学的人会无所适从。
iwong 2014-01-09
  • 打赏
  • 举报
回复
单向链表的实现。补补数据结构知识。
zhcosin 2014-01-09
  • 打赏
  • 举报
回复
楼主你懂链表吗?不懂的话赶快补,人家那代码是链表的应用,你如果没有链表的基础估计是不容易读懂的。
xiaohuh421 2014-01-09
  • 打赏
  • 举报
回复
楼主的基础C++语法还有待加强, 建议先把语法全部学完, 边学连练习对应语法的例子. book *next; //这行不懂。 这是指向book类的指针, 这样就可以把很多个book连接起来. 链表一节会讲. book *creat() ////这行为什么要用book作为类型?把函数creat定义为指针有什么好处? 这里意思是返回一个book类型的指针, 注意这里的book*是Create函数的返回值类型, 并不是函数定义为指针. 这个函数的意思是在内部创建对象, 然后通过指针返回这个对象的地址. return 表示函数的返回点. 说明函数执行到这句就不再继续执行了, 而return后面的值即是这个函数要返回的值. 总之一句话, 先看基础, 再开始做这个吧. 你的例子是链表一节的内容了, 基本语法学完学清楚了, 再来学这个吧. 遇到不懂的, 再回翻基本语法.
FrankHB1989 2014-01-09
  • 打赏
  • 举报
回复
虽然是“体现基础”,不过这种说是C风格都糟糕的代码新手还是少看为妙。
baichi4141 2014-01-09
  • 打赏
  • 举报
回复
学习一门技术,首先要抛开所有自己的想法,接受一些新东西,然后再去想这些东西为什么是这样的。 楼主的疑问中掺杂了太多自己的想法,以至于让人没办法给楼主讲解明白。现在楼主最需要的,就是停止基于空想的疑问,死记硬背下去。 用类名作为类型有什么实际作用?这么说吧,如果只使用语言定义的基本类型,你写不出任何有实际作用的程序。 别再空想了,背吧。
jiandingzhe 2014-01-09
  • 打赏
  • 举报
回复
或者楼主的意思是:为什么指针也有类型?尽管在一个系统下,指针的尺寸都一样,而且它作为基本类型也没有内部结构。 这是为了编译时检查,强制限制从这个指针能够执行的功能。你声明指针的类型是book*,那么这个指针就只能调用book类的功能,按book类的结构访问数据。
jiandingzhe 2014-01-09
  • 打赏
  • 举报
回复
楼主的问题很奇怪,“类名”本来就是用作类型的啊。 函数的返回是最基本的概念。函数吃进去一些东西,给你提供处理结果,“返回”就是函数的处理结果。
AndyStevens 2014-01-09
  • 打赏
  • 举报
回复
gogiqp_jyh 2014-01-09
  • 打赏
  • 举报
回复
buyong 2014-01-09
  • 打赏
  • 举报
回复
一个类的指针作为类成员而已
vipcxj 2014-01-09
  • 打赏
  • 举报
回复
我觉得LZ不要什么都不懂就直接拿网上的例子来看,还是去买本书把基础学好再说~

65,184

社区成员

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

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