C++虚函数、纯虚函数和抽象类

1.虚函数

虚函数是类中的一个函数成员,与其它函数成员的唯一区别是在子类中覆盖它。声明虚函数的方法很简单,只要在需要声明为虚函数的函数成员返回值类型之前加上virtual关键字。如:

class A {
private:
    int a;
public:
    virtual void setA(int n) {    //虚函数,需要在子类中将其覆盖
        a = n;
    }
};

对于虚函数,编译器完成的是动态连编,即对函数的调用是在运行时确定的,保证了子类覆盖虚函数之后运行的正确性。

2.纯虚函数

纯虚函数是一个函数成员,是一个在基类中说明的虚函数,并且没有具体的函数代码,各派生类可以根据自己的需要,分别覆盖它,从而实现正真意义上的多态性。函数覆盖和重载不能体现真正的多态性,只有虚函数才是多态性的表现。纯虚函数声明格式为:

virtual 函数返回值类型 函数名(形参列表) = 0;

基类不需要给出纯虚函数的实现代码,而又派生类给出。

3.抽象类

带有纯虚函数的类称为抽象类,它位于类的上层,不能定义抽象类的对象

对于抽象类和纯虚函数需要注意一下要点:

  • 如果一个类包含有纯虚函数,那么它就是抽象类,必须让其它类继承它。
  • 基类中的纯虚函数没有代码。
  • 不能定义抽象类的对象,即抽象类不能实例化。
  • 必须在子类中覆盖基类中的纯虚函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值