虚函数与纯虚函数理解

  1. 想想虚这个字怎么理解,想象你是个爸爸,你现在要给儿子买奶粉,但是你不知道给哪个儿子买,你虚不虚?在代码层面就是它不知道自己可能会指向哪块空间,它指的是父类创建的指针或者引用
  2. 虚函数存在的目的是为了实现动态多态的,关键字virtual
  3. 核心的想法是父类可以访问到子类的函数(因此是创建父类的指针或者引用指向子类的对象
  4. 纯虚函数是为了实现一个接口,想要继承父类,就必须要实现这个函数,纯虚函数在父类中不写具体实现
    virtual void test() = 0
  5. 含有纯虚函数的类成为抽象类,该类不能生成对象

#include <iostream>

using namespace std;

//创建基类
class Parent
{
private:
   
public:
    float milk_pieces;
    virtual void buy_milk()
    {
        cout << "im father, i have " << milk_pieces << "RMB" << endl;
    }
    
    Parent(float mp):milk_pieces(mp){}
    Parent(){}
    virtual ~Parent(){}
};

//创建子类
class Child1 : public Parent
{
private:
    int m_p;
public:
    virtual void buy_milk()
    {   
        cout << " im child 1 , i need " << m_p << "RMB \t to buy milk" << endl;
    }

    Child1(int mp): m_p(mp){ }
    virtual ~Child1(){}
    
};

int main()
{
    Parent *p = new Parent(199.2);
    p->buy_milk();
    
    Parent *p1 = new Child1(200);
    p1->buy_milk();

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值