首页 > 编程知识 正文

C 抽象类 和纯虚函数详解,抽象类必有纯虚函数

时间:2023-05-03 09:42:16 阅读:255390 作者:4023

这里写目录标题 纯虚函数的描述抽象类的描述

纯虚函数的描述

在class或者struct中,的函数,只定义了函数类型,但是没有函数体,并且给函数初始化 = 0 如下: speak()和run()就是2个纯虚函数

class Person{public: virtual void speak() = 0;//纯虚函数,只定义了函数类型,没有函数体.相当于oc和swift中的协议里定义的方法 virtual void run() = 0;}; 抽象类的描述

C++相当于oc和swift中的协议,不能直接创建类,C++中的抽象类,是只要包含一个纯虚函数,就是抽象类
上面代码 Person类就是抽象类,因为里面包含了纯虚函数.下面代码因为Student没有把父类中的所有纯虚函数都实现,所以依然是抽象类,不能用来创建对象

class Student: public Person{public: void speak() { cout<< "Student speak()"<<endl; } //student 没有完全实现纯虚函数,依然是抽象类 ,不能创建对象};

下面代码,Worker实现了所有父类中的纯虚函数,所以不是抽象类,可以被初始化.

class Worker: public Person{public: void speak() { cout<< "Worker speak()"<<endl; } //student 没有完全实现纯虚函数,依然是抽象类 ,不能创建对象 void run() { cout<< "Worker run()"<<endl; }}; Person s = Person();//报错,抽象类不能创建对象Student s = Student();//报错 1student 没有完全实现纯虚函数,依然是抽象类 ,不能创建对象Worker w = Worker();//实现了所有的纯虚函数,不再是抽象类,可以创建对象

关于抽象类的作用,跟oc和swift的协议一样,只是声明方法用,在oc和swift中可以用来继承多个协议.相当于继承了多个父类,只不过父类必须是协议.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。