首页 > 编程 > C++ > 正文

C++Primer第五版 第七章习题答案(11~20)

2019-11-08 19:43:19
字体:
来源:转载
供稿:网友

11:知识点1:构造函数—特殊的成员函数,用来控制对象的初始化过程。无返回类型,可重载,不能被声明为const.

知识点2:若无,则有默认的构造函数,是编译器自己隐式的定义的。又称合成的默认构造函数。

知识点3:某些类是不能使用默认的构造函数的,以下三个原因:

1:在未声明任何构造函数的前提下,类内对象的初始化将不受控制

2:合成的默认构造函数可能会造成不必要的错误,如若没有类内初始值来初始化成员,可能这些成员将是未定义的。

3:如果类中包含了一个其他类类型的成员,且这个成员的类型没有默认构造函数,那么编译器将无法初始化该对象。

所以,在撰写类的时候,最好定义一个自己的构造函数。

12:知识点:内部外部定义构造函数是不影响的

将其移至内部即可

13:实例化对象时修改一下即可

14:仍然可以使用列表初始化的方法,直接将数值赋给成员。

Sales_data() : units_sold(0) , revenue(0){};15:见本章第四题答案。

16:知识点1:需要控制的类的相关操作—类成员的初始化、拷贝、赋值、销毁对象

知识点2:PRivate隐藏类的相关实现细节,实现封装。

     访问说明符的作用域是开始知道下一个访问说明符或者类结束。不想被使用该类的程序看到的代码细节,都要private.

17:见本章第一题讲解。

18:封装实现了类的接口和实现的分离,隐藏了类的实现细节,用户只能接触到类的接口。

优点:

隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理操作;

类自身的安全性提升,只能被访问不能被修改;

类的细节可以随时改变,不需要修改用户级别的代码;

19:相关的信息变量为private

访问这些变量的函数为public

就是判断你的信息是否需要隐藏起来!

20:知识点1:友元—类允许其他类或者函数访问其非共有成员,只要在本类内,加一条类前或者函数前有friend关键字(最前方)的声明即可。最好在类的开始或结尾集中声明友元。

优点:可以灵活地实现需要访问若干类的私有或受保护成员才能完成的任务,便于与其他不支持类的语言进行混合编程;通过使用友元函数重载可以更自然第使用C++语言的I/O流库。
 缺点:一个类将对非公有成员的访问权授予其他的函数或类,会破坏该类的封装性,降低该类的可靠性和可维护性。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选