早教吧 育儿知识 作业答案 考试题库 百科 知识分享

对于虚析构函数与一般虚函数,以下说法正确的是A、重定义函数就是派生类的构造函数B、重定义函数就是派生类的析构函数,要求同名C、一个虚析构函数的版本被调用执行后,接着就要执行其

题目详情
对于虚析构函数与一般虚函数,以下说法正确的是
A、重定义函数就是派生类的构造函数
B、重定义函数就是派生类的析构函数,要求同名
C、一个虚析构函数的版本被调用执行后,接着就要执行其基类版本
D、基类和派生类都分别给出了一个虚函数的不同版本




▼优质解答
答案和解析
重定义函数好比是单独的在基类和派生类中各自定义了一个方法,相互之间没有联系.
如:fun()函数在A类和B类中都有,A是基类,B从A派生来的.那么派生类的对象交给他的父类的指针时,指针调用只能调用到父类的函数.
A a;
B b;
A *c= new B;
a.fun 调用A类的fun,b.fun调用B类的fun,c->fun 调用A类的fun
构造函数是没有虚不虚这一说的.
析构函数被申明为虚,是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象.虚析构函数工作的方式是:最底层的派生类的析构函数最先被调用,然后各个基类的析构函数被调用.
虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型.以实现统一的接口,不同定义过程.如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数.
我觉得答案应该是 C
看了 对于虚析构函数与一般虚函数,...的网友还看了以下: