zoukankan      html  css  js  c++  java
  • (转)(C++)关于抽象基类和纯虚函数

    ★抽象类:一个类可以抽象出不同的对象来表达一个抽象的概念和通用的接口,这个类不能实例化(创造)对象。

    ★纯虚函数(pure virtual):在本类里不能有实现(描述功能),实现需要在子类中实现。
    例:
     virtual typeT function_name(parameter_list)=0;
     
     virtual void draw()=0; //画,纯虚函数;
     virtual void rotate(double)=0; //旋转,纯虚函数;

    ★抽象类(abstract class):如果一个类包含纯虚函数,那么这个类就叫抽象类。

    ★一个抽象类只能用作基类,只能用作派生,不能实例化(创建)对象。一个类要是包含至少一个纯虚函数,则这个类是抽象类。一个抽象类的子类可以添加更多的数据成员和成员函数。

    ★抽象类的子类可以还是抽象类,可以添加更多的成员函数和成员方法,直到可以产生对象为止。

    ★由于抽象类不能构造对象,因此它的构造函数不能被单独调用。它的构造函数只能在子类的成员初始化列表里面调用。

    ★抽象类不一定有析构函数,如果有必须是虚析构函数。

    ★★★一个函数不能有抽象类对象的值参数<参数不能传值>,这个函数不能有抽象类对象的值返回。然而可以有抽象类类型的指针和引用可以作为参数,同样抽象类的指针和引用可以作为函数的返回值类型。因为他们可以指向或者引用抽象类的子类对象。

    ★纯虚函数是在子类里面被实现的。如果子类没有实现纯虚函数,纯虚函数将继承给子类。那么这时子类同样也是一个抽象类。

  • 相关阅读:
    【转载】 下载百度云的正确姿势---油猴插件
    微信公众号开发
    F5 BIG-IP – Useful SNMP oids to monitor
    F5负载均衡 MIBs bigip oid
    常用OID(SNMP)
    有趣的深度图:可见性问题的解法
    Unity User Group 北京站:《Unity5.6新功能介绍以及HoloLens开发》
    再议Unity优化
    工作中的趣事:聊聊ref/out和方法参数的传递机制
    聊聊网络游戏同步那点事
  • 原文地址:https://www.cnblogs.com/zhc-/p/3623143.html
Copyright © 2011-2022 走看看