-
纯虚函数:没有函数体,且函数名后面要加=0查看全部
-
1.普通函数不能是虚函数。<br> 2.静态成员函数不能是虚函数。<br> 3.内联函数不能是虚函数->(内联函数会被直接展开)<br> 4.构造函数不能是虚函数。查看全部
-
函数的隐藏与覆盖查看全部
-
virtual修饰内联函数会忽略内联定义查看全部
-
有虚函数的情况下,对象的第一个地址是虚函数表的地址,然后才是数据成员的地址查看全部
-
对象的地址是“对象在内存中的首地址”,而对象的首地址存放着“对象的第一个数据成员”,因此如果用一个指针指向这个对象,那么它指向的就是这个数据成员(首地址)。查看全部
-
覆盖:在继承的前提下,如果子类没有与父类同名的虚函数,那么在子类的虚函数列表中就会写上父类的虚函数的入口地址,如果子类有,那么子类的虚函数就会覆盖原来父类的虚函数的函数地址,覆盖成子类虚函数的函数地址。查看全部
-
当一个类存在虚函数的情况下,这个类实例化的对象所占据的第一块内存是一个指针,这个指针就是虚函数表指针。查看全部
-
虚函数表指针 虚函数表 虚函数查看全部
-
1.虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数。 2.虚析构函数是为了避免使用父类指针释放子类对象时造成内存泄漏。查看全部
-
虚析构函数:使用new关键字来新建一个父类指针调用子类对象的时候,如果子类对象在堆中new了一段内存,因为释放父类指针的时候不会调用子类的析构函数,那么在子类中的delete也就形同虚设,所以会导致内存泄漏,将子类析构函数写成虚析构函数,那么释放父类指针的时候也会调用子类的虚构函数,子类申请的内存也会被释放掉。查看全部
-
只在父类的“同名”函数中添加 virtual 关键字也可以达到多态的效果,但还是在父类和子类中都加上(使代码更清晰) 多态:不同对象接收到的相同指令所执行的不同动作,“相同指令”就是指同名、同参数、同返回类型 的函数,查看全部
-
常见的异常:查看全部
-
typeid注意事项:查看全部
-
dynamic_cast注意事项:查看全部
举报
0/150
提交
取消