1、虚函数可以实现也可以不实现
如
public A
{
//可以编写实现代码
}
纯虚函数不实现,而且包含纯虚函数的类被称为抽象类,不能实例化
即:
class CA
{
public:
virtual void fun() = 0; // 说明fun函数为纯虚函数
virtual void fun1();
};
若CA a;//这样是不对的,因为抽象类是不能实例化的
纯虚函数定义如下
public A
{
virtual returnType funcName()=0
}
虽然不能定义抽象类的实例,但是可以定义它的指针,这正是用抽象类实现接口的重点所在
接口是一个概念。它在C++中用抽象类来实现
C++中表现接口一般是这样的
class Interface
{
public:
virtual void Dosomething()=0;
}
2、虚函数与纯虚函数
虚函数:定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
纯虚函数:定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。