第十五章 15.2.3节练习

来源:互联网 发布:js中对日期格式化 编辑:程序博客网 时间:2024/05/05 10:43

练习15.8

给出静态类型和动态类型的定义。

解答:

这里的静态类型和动态类型是指在继承关系中的两种表达式或变量。

【引用】表达式的静态类型在编译时总是已知的,它是变量声明时的类型或表达式生成的类型;

【引用】动态类型则是变量或表达式表示的内存中的对象的类型。动态类型知道运行时才可知。


练习15.9

在什么情况下表达式的静态类型可能与动态类型不同?请给出三个静态类型与动态类型不同的例子。

解答:

【引用】如果表达式既不是引用也不是指针,则它的动态类型永远与静态类型一致。

只要不满足上述条件,则动态类型和静态类型就不同。这样的话,可以自己创建例子了。

534页中对net_price的说明也可以算一个。


练习15.10

回忆我们在8.1节(第279页)进行的讨论,解释第284页中将ifstream传递给Sales_data的read函数的程序是如何工作的。

解答:

这里涉及到fstream继承与istream,当程序运行的时候,read函数中的is并不是istream类型,而是fstream类型,此时is的动态类型就是fstream了。

0 0
原创粉丝点击