什么时候需要定义虚函数,
首先要看成员函数所在的class是否会作为base class,然后看成员函数在class的继承后有无可能被更改功能,如果希望更改其功能的,一般应该将它声明为虚函数。如果成员函数在class被继承后功能不需修改,或派生类用不到该函数,则不要把它声明为虚函数。
纯虚函数是在声明虚函数时被“初始化”为0的函数。声明纯虚函数的一般形式是:
virtual 函数类型 函数名 (参数表列) =0;
virtual type function(type T)=0;
要注意的是:
- 纯虚函数没有函数体;
- 最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”;
- 这是一个声明语句,最后应有分号。
纯虚函数只有函数的名字而不具备函数的功能,不能被调用。
它只是通知编译系统: “在这里声明一个虚函数,留待派生类中定义”。
在派生类中对此函数提供定义后,它才能具备函数的功能,可被调用。