zoukankan      html  css  js  c++  java
  • C++虚函数和纯虚函数


    在开发项目中,自己对虚函数和纯虚函数的理解不到位,在此特别做一篇博客。

                                                    2018-08-08


    1.纯虚函数

      百度百科:纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留給基类的派生类去做。

      纯虚函数格式:

    class <类名>
    {
            virtual <类型><函数名>(<参数表>)=0;
             ...
    }        
    

     引入原因:

        1)为了方便使用多态特性,常常需要在基类中定义虚函数

        2)在很多情况下,基类本身生成对象是不合情理的。例如:动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。

    2.虚函数

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

      定义格式

    virtual 返回类型   函数名(参数列表) {函数体}
    

      指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用相应的函数,这个函数就是虚函数。

    区别:

      纯虚函数是虚函数的一个子集,用于抽象类,含有纯虚函数的类就是抽象类,它不能生成对象。

    3.virtual在函数中的使用限制

      1)普通函数不能是虚函数,也就是说这个函数必须是某一个类的成员函数,不可以是一个全局函数,否则会导致编译错误。

       2)静态成员函数不能是虚函数 static成员函数是和类同生共处,他不属于任何对象,使用virtual也将导致错误。

       3) 构造函数不能是虚函数,否则会出现编译错误。

     

    The future's not set,there is no fate but what we make for ourselves.
  • 相关阅读:
    OC动态特性
    app之间的互相跳转
    将服务器返回的URL或者网址截取出来特定的字符,然后将字符返回,一般根据返回的字符判断用户是否登录等即时状态
    网络请求的封装
    代理传值
    sql脚本查询日期时间段日期
    SQL >日期函数
    Sql 中text类型字段判断是否为空
    修复IE9.0下PlaceHolder 属性问题js脚本
    迅雷专用下载的几种代码
  • 原文地址:https://www.cnblogs.com/wang1994/p/9442347.html
Copyright © 2011-2022 走看看