c ii程序习题及其解答

c ii程序习题及其解答

ID:11691710

大小:267.50 KB

页数:35页

时间:2018-07-13

c  ii程序习题及其解答_第1页
c  ii程序习题及其解答_第2页
c  ii程序习题及其解答_第3页
c  ii程序习题及其解答_第4页
c  ii程序习题及其解答_第5页
资源描述:

《c ii程序习题及其解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.3思考题1.结构和类有什么区别?如果把程序中定义结构的关键字struct直接改成class,会有什么问题?用教材上的一个例程试一试,想一想做什么修改能使程序正确运行?【解答】结构是数据的封装,类是数据和操作的封装。可以把结构看成是类的特例。结构和类都可以用关键字struct或class定义。区别是,struct定义的结构或类的全部成员都是公有的,用class定义的结构或类不做声明的成员是私有的。若把struct改成class,只需要把全部成员定义为public就可以了。2.有说明classA{inta;doublex;public:funMemb

2、er();};Aa1,a2,a3;编译器为对象a1、a2和a3开辟了什么内存空间?它们有各自的funMember函数的副本吗?C++通过什么机制调用类的成员函数?【解答】开辟的存储空间有a1.a,a1.x,a2.a,a2.x,a3.a,a3.x。各对象没有funMember函数的副本,C++通过this指针调用成员函数。3.C++提供了默认版本的构造函数,为什么还需要用户自定义构造函数?编写一个验证程序,说明自定义构造函数的必要性。【解答】类的默认构造函数可以建立基本类型数据成员的存储空间。基于以下两个原因,需要用户定义构造函数:(1)对数据成员的值

3、做指定初始化;(2)类的数据是由指针管理的堆。程序略。4.试从定义方式、访问方式、存储性质和作用域分析类的一般数据成员和静态数据成员的区别,并编写一个简单程序验证它。【解答】定义方式访问方式存储性质作用域一般数据成员类中定义对象.数据成员局部数据由访问属性public,protected,private决定静态数据成员类中声明,类外定义对象.数据成员类::数据成员全局数据程序略。355.试从定义方式、调用方式分析常成员函数、静态成员函数和友员函数的区别。考察教材的例6-15,若classGoods的指针域Goods*next;被声明为私有(priva

4、te)成员,程序会出现什么错误?做什么最小修改能使程序正确运行?请你试一试。【解答】定义方式调用方式常成员函数函数原型以const做后缀this指针被约束为指向常量的常指针与一般成员函数调用形式相同对数据成员只读静态成员函数以static做函数原型前缀没有this指针通过类或对象调用用于操作静态数据成员友员函数以friend做函数原型前缀没有this指针通过参数访问对象可以访问对象的不同属性的成员在例6-15中,若把next声明为私有数据成员,只须把有关指针操作的函数定义为友员函数就可以了:friendvoidpurchase(Goods*&f,Go

5、ods*&r,intw);friendvoidsale(Goods*&f,Goods*&r);6.设有classM{inta;};classN{Mm;intb;voidfun(){/*……*/}};intmain(){Nn;N*p=&n;/*……*/}描述在N::fun中如何访问M类的数据成员a;在main函数中又如何访问对象n的全部数据成员?【解答】在N::fun中访问M类的数据成员a的形式是:m.a在main函数中访问M类的数据成员的形式是:n.b,n.m.a6.4编程题1.定义一个Book(图书)类,在该类定义中包括数据成员:bookname(

6、书名)、price(价格)和number(存书数量);成员函数:display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。在main函数中,要求创建某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。【解答】#includeusingnamespacestd;classBook{public:voidsetBook(char*,double,int);voidborrow();voidrestore();voiddisplay();privat

7、e:35charbookname[40];doubleprice;intnumber;};//在类外定义Book类的成员函数voidBook::setBook(char*name,doublepri,intnum){strcpy(bookname,name);price=pri;number=num;}voidBook::borrow(){if(number==0){cout<<"已没存书,退出!"<

8、estore(){number=number+1;cout<<"还一次,现存书量为:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。