1.new和molloc()的区别
来自于https://www.cnblogs.com/ywliao/articles/8116622.html
2.C++多态性与虚函数表
https://blog.csdn.net/qq_36359022/article/details/81870219
1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。
2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。
3:多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性。
4:多态用虚函数来实现,结合动态绑定.
5:纯虚函数是虚函数再加上 = 0;
6:抽象类是指包括至少一个纯虚函数的类。
3.C++多态的实现?
https://blog.csdn.net/qq_39412582/article/details/81628254
4.虚函数的作用?
允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
虚函数的使用方法是:
1.在基类用virtual声明成员函数为虚函数可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。
在类外定义虚函数时,不必再加virtual。
2.在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重新定义函数体。
在派生类重新声明该虚函数时,可以加virtual,也可以不加,但习惯上一般在每一层声明该函数时都加virtual,使程序更加清晰。
3.如果在派生类中没有对基类的虚函数重新定义,则派生类简单地继承其直接基类的虚函数。
5.动态绑定是如何实现的?
https://blog.csdn.net/solococoanet/article/details/79482646
6.静态多态和动态多态
静态多态分为:函数重载和泛型编程
动态多态:虚函数
7.虚函数表
8.虚函数表是针对类的还是针对对象的?同一个类的两个对象的虚函数表是怎么维护的?
编译器为每一个类维护一个虚函数表,每个对象的首地址保存着该虚函数表的指针,同一个类的不同对象实际上指向同一张虚函数表。
网友评论