C++:
1、虚函数是干什么用的
2、什么时候使用
C++:
1、虚函数是干什么用的
2、什么时候使用
virtual:虚基类解决两义性问。
两义性:继承过来的基类中有同名成员可用类域区分。编译器是从近到远搜索函数名,若现子类同名调用则不会产生两义性。如hum类 father类与mother类都继承hum并都有一个成员函数get(){cout<<"父亲聪明"<<endl; get(){cout<<"母亲聪明"<<endl; 现在有一个son类继承了father和mother ,当调用get()时编译器不知道调用哪个这就是两义性问题~ 若在father与mother前声明一个virtual关键字即可解决这个问题。
虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类的指针或者引用来访问基类和派生类中的同名函数。
什么时候用?
1.看成员函数所在类是否会做基类,如果在继承后,函数功能会改变则申明为虚函数。
2.考虑调用函数是用对象名还是基类指针或者引用去访问,若是用基类指针或者引用去访问,则申明为虚函数。
3.有时定义虚函数函数体空的,留给派生类同名函数去添加。