using namespace std;
class Base {
public:
virtual void tall();
};
class People : Base {
public:
void tall() {
cout << "people" << endl;
};
};
在 main 方法中,我们不能使用 Base base; 这行代码,因为tall()函数没有实现,一个类的所有函数必须全部实现,这个类才可以创建对象,花括号里可以什么都不写,但是不能以圆括号和分号结尾
如果在一个类中声明了纯虚函数,在其派生类中没有对其函数进行定义,则该虚函数在派生类中仍然为纯虚函数
但我们可以使用 People people; 然后 people.tall();因为People重写,覆盖了Base的纯虚函数people(),使其在 People 类中有了定义,函数表挂上去了,于是可以诞生实例了
不用定义对象而只作为一种基本类型用作继承的类叫做抽象类(也叫接口类),凡是包含纯虚函数的类都是抽象类,抽象类的作用是作为一个类族的共同基类,为一个类族提供公共接口,抽象类不能实例化出对象