
含有纯虚函数的类就叫做抽象类。抽象类不能定义对象,但是可以定义指针和引用。
class Occupation
{
public:
Occupation(){ std::cout << "Occupation()" << std::endl; };
//纯虚函数 基类给派生类预留的统一的接口,派生类必须实现
virtual void work() = 0;
};
再派生类中,纯虚函数必须实现,否则派生类还是一个抽象类:
class Student : public Occupation
{
public:
Student(){ std::cout << "Student()" << std::endl; };
void work() { std::cout << "Student::work()" << std::endl; }
};
class Teacher : public Occupation
{
public:
Teacher(){ std::cout << "Teacher()" << std::endl; };
void work() { std::cout << "Teacher::work()" << std::endl; }
};
为什么会有抽象类
我们知道类型就是对某一类事务的描述,由于他可能不是对某一类具体的类型的描述,而是抽象的笼统的,所以一些方法或者属性没有办法实现,所以,我们只能将这些方法声明为纯虚函数,如virtual void work() = 0;,交给派生类自己去重新实现(重写)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)