纯虚函数
例如
class A {
public:
virtual void test()= 0;
};
注意,没有花括号。
virtual void test() = 0;
抽象基类
含有(或者未经覆盖直接继承)纯虚函数的类是抽象基类。比如前面的类 A 。
只要继承的纯虚函数没有写花括号,它就还是纯虚函数。
class B :public A {
void test(int);//还是纯虚函数
};
有了花括号,哪怕为空,也不是纯虚函数。
class B :public A {
void test() {};
};
抽象基类不能被实例化。
但是可以定义抽象基类的指针。
虚基类和抽象类不是一个概念。