zoukankan      html  css  js  c++  java
  • 抽象类 虚函数 声明与实现

    声明含 virtual 的函数叫虚函数。

    声明为 virtual returntype foo(参数) = 0; 的虚函数叫纯虚函数。纯虚函数只能声明,不能实现。

    包含至少一个纯虚函数的类叫抽象类(纯虚类)。只包含纯虚函数的类叫纯抽象类(接口)。抽象类不能实例化(当然了,可以定义它的指针)。继承自抽象类的派生类必须全部实现基类的纯虚函数才能实例化,否则该派生类仍是抽象类。

    普通成员函数(非virtual)可以只声明而不定义,当然了必须使用时未调用过它。析构函数声明后必须实现(因为它肯定会被调用)。构造,拷贝构造、复制函数可以声明不实现(必须有一可供使用的构造函数,其他构造函数可只声明)。

    虚函数必须实现,否则编译出错。

    构造函数不可以是虚函数--见这里,讲的很详细

    析构函数使用多态时基类应声明为虚函数,否则析构时不会调用派生类的析构函数。当然,有的接口(纯抽象类)并没有看到它的虚析构函数,那是因为没有用到多态,若用到了多态最好声明实现虚析构函数。注意实现两字,接口类的虚析构函数要实现。

    析构函数可以是纯虚函数(派生类此时必须要显式声明并实现析构函数):用途,当需要提供一个空接口时!

  • 相关阅读:
    JavaSE之流程控制结构
    JavaSE的基本语法
    排序算法
    Java实现归并排序
    Java中线程池的介绍
    Java锁的升降级及synchoronized优化
    ThreadLocal应用与原理
    spring bean 实例化bean前后进行相应的设置
    maven依赖配置和依赖范围
    springmvc校验
  • 原文地址:https://www.cnblogs.com/sfqtsh/p/5143110.html
Copyright © 2011-2022 走看看