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^)/

 

posted @ 2011-09-18 11:52  Rabbit Nick  阅读(404)  评论(0编辑  收藏  举报