-
函数的覆盖和隐藏 隐藏:定义了父类和子类,如果父类和子类出现了相同的函数,则称为 隐藏 覆盖:子类定义了新的虚函数,在虚函数表中会覆盖掉父类的虚函数地址查看全部
-
如果新的中定义了虚函数,那么虚函数表指向的虚函数也是新的那个。查看全部
-
Circle中没有虚函数,但是从父类继承了虚函数 此时也有虚函数表(一个新的) 最终通过 虚函数表的偏移找到的虚函数的地址确实一样的查看全部
-
虚函数表指针->虚函数表->通过相应的偏移->找到相应的虚函数查看全部
-
构造函数不能为虚函数查看全部
-
内联函数不能是虚函数 --如果“inline virtual int eat(){}” 编译器会忽略掉 inline查看全部
-
静态成员函数不能是虚函数查看全部
-
静态成员函数不能是虚构函数查看全部
-
virtual 使用限制 1、普通函数不能是虚函数 --必须在类中,不能是全局函数查看全部
-
虚析构函数,先执行 子类,后父类--保证不 内存泄露查看全部
-
虚析构函数--解决内存泄露的问题查看全部
-
一没有指针,二没有申请内存, 不存在因 多态而出现 内存泄露的问题查看全部
-
宏定义——避免重复包含所写查看全部
-
使用三个类时动态多态表现的更为明显查看全部
-
以封装 和继承为基础,才能谈到动态多态。 封装-类;继承-子类关系查看全部
举报
0/150
提交
取消