码迷,mamicode.com
首页 > 其他好文 > 详细

虚函数

时间:2019-09-30 20:03:21      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:整理   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!