练习15.8:给出静态类型和动态类型的定义。

答: 静态类型:是变量声明时的类型,或者是表达式生成的类型,这样的类型在编译时已知。

动态类型:是变量或者表达式表示的内存中的对象的类型,直到运行时才可知。

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

答:第一种:函数形参是基类的引用(静态类型),调用函数时,传递的实参为派生类的对象(动态类型)

第二种:函数形参是基类的指针(静态类型),调用函数时,传递的实参为派生类的指针(动态类型)

第三种:函数形参是基类的指针(静态类型),调用函数时,传递的实参为派生类的对象的引用(动态类型)

05-11 22:23