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

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

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

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

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

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

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

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

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

  • 相关阅读:
    BPF and eBPF linux
    o-sync-and-o-direct
    linux performance test
    iostat
    MYSQL IO innodb-buffer-pool
    MYSQL file types redo log
    read pread write pwrite open
    CORE DUMP
    linux kernel的中断子系统 softirq
    linux KERNEL 问题
  • 原文地址:https://www.cnblogs.com/sfqtsh/p/5143110.html
Copyright © 2011-2022 走看看