纯虚函数与抽象类

纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本

    纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)

    纯虚函数说明形式:

        virtual 类型 函数名(参数表)=0;

    一个具有纯虚函数的基类称为抽象类:

    1,含有纯虚函数的类,称为抽象基类,不可实列化。即不能创建对象,存在 的意义

    就是被继承,提供族类的公共接口。

    2,纯虚函数只有声明,没有实现,被“初始化”为 0。

    3,如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该虚函数在

    派生类中仍然为纯虚函数,派生类仍然为纯虚基类。

以下编写一个抽象类实现功能:

class Animal

{

public:

    Animal()

    {

        cout << "Animal::Animal()" << endl;

    }

    ~Animal()

    {

        cout << "Animal::~Animal()" << endl;

    }

    virtual void voice() = 0;

};

class Dog :public Animal

{

public:

    Dog() {

        cout << "Dog::Dog()" << endl;

    }

    ~Dog() {

        cout << "Dog::~Dog()" << endl;

    }

    void voice() {

                cout << "wang   wang" << endl;

            }

};

class Cat :public Animal

{

public:

    Cat() {

        cout << "Cat::Cat()" << endl;

    }

    ~Cat() {

        cout << "Cat::~Cat()" << endl;

    }

    void voice() {

        cout << "miao   miao    " << endl;

    }

};

        Void main(){

            Animal *pa = new Dog;

            pa->voice();

            delete pa;

            cout << "---------------" << endl;

            pa = new Cat;

            pa->voice();

            delete pa;

}

运行结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值