C++Primer(第4版)习题解答_十二章

C++Primer(第4版)习题解答_十二章

ID:40488662

大小:35.29 KB

页数:14页

时间:2019-08-03

C++Primer(第4版)习题解答_十二章_第1页
C++Primer(第4版)习题解答_十二章_第2页
C++Primer(第4版)习题解答_十二章_第3页
C++Primer(第4版)习题解答_十二章_第4页
C++Primer(第4版)习题解答_十二章_第5页
资源描述:

《C++Primer(第4版)习题解答_十二章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十二章类和数据抽象12.1编写一个名为person的类,表示人的名字和地址,使用string来保存每个元素。答:classperson{public:person(stringpName,stringpAddress){name=pName;address=pAddress;}private:stringname;stringaddress;};12.2为person提供一个接收两个string参数的构造函数。见第一题。12.3提供返回名字和地址的操作。这些函数应为const吗?解释你的选择。在public里添加成员函数:str

2、ingget_name()const{returnname;]stringget_address()const{returnaddress;]这两个成员函数不应该修改其操作的对象的数据成员的值,应该声明为const类型。12.4指明person的哪个成员应声明为public,哪个成员应声明为private。解释。数据成员name和address应为private,保证只能被类的成员所用,外界不可访问。成员函数get_name()和get_address()应声明为public,为外界提供接口访问类的数据成员。构造函数也应声明为pu

3、blic,以便初始化类的对象。12.5C++类支持哪些访问标号?在每个访问标号之后应定义哪种成员?如果有的话,在类的定义中,一个访问标号可以出现在何处以及可出现多少次?约束条件是什么?有public,private,protect。public后定义可被外界访问的接口,private后定义只能被本类成员函数使用的成员;protect后定义的成员称为受保护成员,只能由本类及本类的子类访问。访问标号可以出现在任意成员定义之前且次数没有限制。约束条件是:每个访问标号指定了随后的成员定义级别,这个级别持续有效,直到下一个访问标号出现,或者

4、看到类定义体的右花括号为止。12.6用class关键字定义的类和用struct定义的类有什么不同。默认访问标号不同,用struct关键字定义的,在第一个访问标号之前的成员是共有的,如果是用class关键字定义的,在第一个访问标号之前的成员是private成员。12.7什么事封装?为什么封装是有用的?封装是一种将低层次的元素组合起来形成新的、高层次实体的技术。例如,函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中。被封装的元素隐藏了它们的实现细节,可以调用一个函数但不能访问它所执行的语句,同样类也是一个封装

5、的实体:它代表若干成员的聚集,大多数类类型隐藏了实现该类型的成员。封装隐藏了内部元素的实现细节,提供了优点:避免类内部出现无意的可能破坏对象状态的用户级错误;在修改类的实现时不需要修改用户级代码,这些都很有用。12.8将sales_item::avg_price定义为内联函数。inlinedoublesales_item::avr_price()const{if(units_sole)returnrevenue/units_sold;elsereturn0;}12.9修改本节中给出的screen类,给出一个构造函数,根据屏幕的高度

6、、宽度和内容的值来创建screen。classScreen{public:typedefstd::string::size_typeindex;Screen(indexhei,indexwid,stringcontent){contents=content;height=hei;width=wid;}private:std::stringcontents;indexcursor;indexheight,width;};12.10解释下述类中的每个成员:classRecord{typedefstd::size_tsize;Recor

7、d():byte_count(0){}Record(sizes):byte_count(s){}Record(std::stirngs):name(s),byte_count(0){}sizebyte_count;std::stringname;public:sizeget_count()const{returnbyte_count;}std::stringget_name()const{returnname;}};三个Record()函数是重载的三个构造函数,sizebyte_count;std::stringname;这是两个

8、private的数据成员,sizeget_count()const,std::stringget_name()const这是两个public成员函数。12.11定义两个类X和Y,X中有一个指向Y的指针,Y中有一个X类型的对象。classY;clas

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

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

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