c++: C++虚函数和纯虚函数

纯虚函数

定义

纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类(继承类)都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加=0
定义纯虚函数的目的在于,使派生类仅仅只是继承函数的接口。

格式

virtual <函数返回类型> 函数名 (参数表) = 0;

例子

class A
{
public:
    virtual void out1(string s)=0;
    virtual void out2(string s)
    {
        cout<<"A(out2):"<<s<<endl;
    }
};

虚函素

定义

在某基类中声明为 virtual 并在一个或多个派生类中被重新定义成员函数

格式

virtual <函数返回类型> 函数名 (参数表)
{
    函数体;
};

实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数

例子

class A
{
public:
    virtual void out2(string s)
    {
        cout<<"A(out2):"<<s<<endl;
    }
};

混合例子:

#include <iostream>
using namespace std;
//基类Base
class Base
{
    public:
        //普通函数
        void f1(int x)
        { 
                cout << "Base::f1(int) " << x << endl;
        } 
        //虚函数
        virtual void f2(int x)
        {
                cout << "Base::f2(void)"<< x << endl;
        } 
        //纯虚函数,将由子类实现
        virtual void f3(int x)=0;

};
int main(int argc, char **argv)
{
       Derived derived;
       Base *pderived = &derived; 
       pderived->f(1);
       pderived->f(2.0f);//注意不指明f的话默认是double
       pderived->g(3.0);     
}

猜你喜欢

转载自blog.csdn.net/dinnerhowe/article/details/79929099