练习15.8:给出静态类型和动态类型的定义。函数
答: 静态类型:是变量声明时的类型,或者是表达式生成的类型,这样的类型在编译时已知。指针
动态类型:是变量或者表达式表示的内存中的对象的类型,直到运行时才可知。对象
练习15.9:在什么状况下表达式的静态类型可能与动态类型不一样?请给出三个静态类型与动态类型不一样的例子。内存
答:第一种:函数形参是基类的引用(静态类型),调用函数时,传递的实参为派生类的对象(动态类型)。编译
第二种:函数形参是基类的指针(静态类型),调用函数时,传递的实参为派生类的指针(动态类型)。变量
第三种:函数形参是基类的指针(静态类型),调用函数时,传递的实参为派生类的对象的引用(动态类型)。引用