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

来源:互联网 发布:java子类继承父类实例 编辑:程序博客网 时间:2024/06/08 10:17

虚函数:

表现形式:

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
原创粉丝点击