虚函数,纯虚函数。函数重写,函数隐藏。

虚函数:

表现形式:

virtual return_type function_name(parameter){},与普通成员函数相比多了一个virtual关键词。

注意:子类中如果有对基类虚函数进行覆盖定义,无论该覆盖是否有virtual关键字,都是虚函数。

主要作用:

实现多态机制,表现如下:

class Father

{

    public:

    virtual void Introduce(void)

    {

        //Father‘s Content

    }

}

 

class Son:public Father

{

    void Introduce(void)

    {

        //Son‘s Content

    }

 

}

 

void main()

{

    Son son1;

    Father *pFather;

    pFather = &son1;

    pFather->Introduce();//调用Son的Introduce函数

}

 

纯虚函数:

表现形式:

virtual void Eat() = 0;

主要作用:

为子类提供接口管理和约束。

class Animal

{

    public:

        virtual void Eat() = 0;

}

 

class Dog:public Animal

{

    public:

        void Eat()

        {

            //Dog's Content;

        }

}

 

class Cat:public Animal

{

    public:

        void Eat()

        {

            //Cat's Content;

        }

}

 

重写(覆盖)和隐藏的区别:

函数的覆盖发生在派生类和基类之间,两个函数必须完全相同,而且是虚函数。

不属于这种情况的就是函数的隐藏。

 

应用:

当发生隐藏时,如果在子类的同名函数想要调用基类的被隐藏函数,可以使用基类名::函数名(参数)的形式。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值