编层思想

是的,你没有看错,我也没有写错,就是编层思想,而不是编程思想。

1.前面有提到数据的流动问题(从输入到输出),其实输入和输出是在同一层的,中间经过了操作系统的转化,我们不需要知道中间的过程,而重点放在同一层的产入和产出。

2.编程的主要框架,即层次结构,不管是在结构化程序设计,还是面向对象的思想,都是先对数据(数据结构和变量)的访问判断,再调用下一层实现。

3.在面向对象的程序设计中,指针的地位仍然非常重要,不管是对对象的操作,还是对对象成员的操作内部都是通过指针,例如通过隐含的this指针来找到不同实例的成员变量。

4.对于虚函数设计的主要目的是父类指针,指向子类对象。现在的问题是我们可以通过不同的标识符(对象名)来建立对象,为什么会是父类指针,原因在于数据类型的统一,方便循环。

显而易见,如果pShape的类型不一样是无法完成循环的,这也是为什么设计成指向父类指针的目的。

5.虚函数本身的实现问题:虚函数也是函数,而且是成员函数。我们就需要找到它的位置,就像成员变量是通过this指针一样。

虚函数的实现是通过类成员变量隐藏的指向函数地址的四个字节的指针来实现的,即虚函数表,V-Table,而且这个指针的值和对象的地址相同。子类在实例化的时候,如果子类虚函数重载了父类须函数则覆盖父类虚函数的地址到V-Table,若没有重载父类的虚函数,则填入自己的虚函数地址到V-Table。

一切源于对计算机的热爱
原文地址:https://www.cnblogs.com/liuweilinlin/p/2579951.html