下表显示了虚拟和纯虚拟功能之间的区别:虚拟功能纯虚函数虚函数在类中有其定义。纯虚函数没有定义。
声明:虚拟funct_name(parameter_list){。。。。。};声明:虚拟funct_name(parameter_list)= 0;
它没有派生类的概念。如果一个类至少包含一个纯虚函数,则将其声明为抽象。
如果需要,基类可以覆盖虚拟函数。在纯虚函数派生类的情况下,必须明确重写纯虚函数。
虚拟功能
范例程式码#include
using namespace std;
class B {
public:
virtual void s() //virtual function {
cout<
}
};
class D: public B {
public:
void s() {
cout<
}
};
int main(void) {
D d; // An object of class D
B *b= &d;// A pointer of type B* pointing to d
b->s();// prints"D::s() called"
return 0;
}
输出结果In Derived
纯虚函数
范例程式码#include
using namespace std;
class B {
public:
virtual void s() = 0; // Pure Virtual Function
};
class D:public B {
public:
void s() {
cout <
}
};
int main() {
B *b;
D dobj; // An object of class D
b = &dobj;// A pointer of type B* pointing to dobj
b->s();// prints"D::s() called"
}
输出结果Virtual Function in Derived class