标签:整理 rtu virt 类型 col 派生 virtual 指针 好处
刚开始学习C++,每天懵懵懂懂看一点,有点乱
现在开始一点点整理
C++虚函数的作用:给派生类重写用的,普通的函数只能重载,通过修改函数形参的个数或者类型,派生类B继承基类A,A类中有个fun函数,B类根据自身需求更改了fun函数
class A { public: void fun(){cout << "A" << endl;} } class B : public A { public: void fun(){cout <<"B" << endl;} }
在main中如下定义:
A a;
B b;
a.fun(); //A
b.fun(); //B
上述代码结果正常
但是C++有许多特性,其中就有基类指针可以指向子类对象 (为甚么,有甚好处,不知道,待更新)
当main代码如下:
A *a = new A; A *b = new B; a->fun(); b->fun();
运行时会报错,b分不清该调用A类的fun还是B类的fun,二义性错误
这个时候,虚函数的作用就出来了,
class A { public: virtual void fun(){cout << "A" << endl;} } class B : public A { public: void fun(){cout <<"B" << endl;} }
此时,上述代码就不会报错了,基类用virtual修饰了fun,让派生类可重写fun函数
2019-09-30
标签:整理 rtu virt 类型 col 派生 virtual 指针 好处
原文地址:https://www.cnblogs.com/xxxsea/p/11613897.html