C++ Primer Chapter 15-2

来源:互联网 发布:mac os dmg镜像下载 编辑:程序博客网 时间:2024/05/29 10:27
1:为了不让一个类被继承,我们可以在类名后加一个关键字final 防止它被继承

2:继承关系中:基类的指针或者引用可以绑定子类对象上。这就意味着,我们并不知道一个基类指针引用绑定的对象的具体类型了。

3:动态类型静态类型:静态类型是指编译时就知道了类型(声明或者定义中的类型),而动态类型则是变量或者表达式在内存中的对象类型只有运行时才会知道

4:只有指针引用才会有静态类型动态类型不同。

5:不存在基类向派生类隐式的转换

6:在基类和派生类的对象之间不存在转换。

7:当我们用一个派生类对象基类对象初始化或者赋值派生类的基类部分会被留下来,而其他派生类部分都会被忽略成为切掉

8:所有虚函数需要被定义,因为编译器无法确定用哪个虚函数,所以我们不定义就有可能在运行时发现错误编译时发现不了

8:为啥动态绑定只会出现在指针或者引用上呢?因为他们都是去某一个内存地址中去解析对象,这是一个动态可变的过程。指针引用都是指明了对象内存中位置

9: 只有通过指针引用调用虚函数时,才会运行时解析该调用,也只有在这种情况才会发生动态绑定

10:派生类中的虚函数参数列表必须与基类的想同。了返回类型是类本身的指针和引用外,返回类型必须相同

11:如果一个函数被 override 标记了,但是该函数没有覆盖已存在的虚函数,此时编译器将会报错

12:一个函数也可以被标记为 final ,表示该函数不可以被覆盖了。

0 0