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

    2011-09-18

    今天补习C++

    virtual函数和纯virtual函数(pure vitural function),可以使一个类成为抽象类。一个纯virtural函数是在声明时“初始化值为0”的函数,如下所示:

    virtual void f() const = 0;//pure virtual function

    “=0”成为纯指示符(pure specifier)。纯virtual函数不提供函数的具体实现,每个派生的具体类必须重写所有基类的纯virtual函数的实现,并且提供派生类是否重写这些函数的选择权。相反,纯virtual函数并不提供函数的实现,需要派生类重写这些函数以使派生类成为具体类,否则派生类仍然是抽象类。

    当基类实现一个函数是没有意义的,并且程序员希望在所有具体的派生类中实现这个函数时,就会用到纯virtual函数。

    在gnuradio中gr_block.h 的classgr_block中general_work 就是纯虚构函数

     virtual int general_work(intnoutput_items,
                                  gr_vector_int &ninput_items,
                                  gr_vector_const_void_star &input_items,
                                  gr_vector_void_star &output_items) = 0;

     

    所以我们在写自己的block的时候,都要对这个函数进行重写,编写自己的code。 欧耶 !!! \(^o^)/

     

  • 相关阅读:
    SNOI 2019 字符串
    1068: [SCOI2007]压缩
    POJ 1848 Tree 树形DP
    BZOJ bzoj1396 识别子串
    BZOJ 4503: 两个串
    BZOJ 2302: [HAOI2011]Problem c(数学+DP)
    BZOJ 3157: 国王奇遇记 (数学)
    CF_528D
    BZOJ 3000: Big Number (数学)
    新の开始
  • 原文地址:https://www.cnblogs.com/nickchan/p/3104486.html
Copyright © 2011-2022 走看看