纯虚函数(pure virtual function)是指被标明为不具体实现的虚拟成员函数。 它用于这样的情况:定义一个基类时,会遇到无法定义基类中虚函数的具体实现,其实现依赖于不同的派生类。 定义纯虚函数的一般格式为: virtual 返回类型 函数名(参数表)=0; 含有纯虚函数的基类是不能用来 ...
分类:
编程语言 时间:
2018-08-30 02:09:18
阅读次数:
196
1.什么是虚函数?什么是纯虚函数? 虚函数是允许被其子类重新定义的成员函数。 虚函数的声明:virtual returntype func(parameter);引入虚函数的目的是为了动态绑定; 纯虚函数声明:virtual returntype func(parameter)=0;引入纯虚函数是为 ...
分类:
编程语言 时间:
2018-08-23 10:48:23
阅读次数:
250
①多态的特点是,类中有虚函数。抽象的特点是,类中有纯虚函数。 ②多态的基类可以实例化对象,抽象类不可以实例化对象。如果一个抽象类的派生类没有实现这个抽象类的纯虚函数,那么这个派生类也是个抽象类,也是不能实例化对象。 ③析构函数不是虚函数会有什么影响?在下面程序中,B是A的派生类,有一个A*类型的指针 ...
分类:
其他好文 时间:
2018-08-17 20:54:07
阅读次数:
235
1.抽象类定义:含有纯虚函数的类成为抽象类。 ...
分类:
其他好文 时间:
2018-08-04 22:25:45
阅读次数:
136
虚函数是类的成员函数,虚函数体现了运行时的多态性,编译时的多态性由函数重载和运算符重载等体现虚函数和函数重载都体现了多态性,但他们的表现形式不一样,函数重载调用根据参数的个数、参数的类型进行区分,而虚函数则是根据动态联编(运行时的多态性)来确定的。 输出:1 3 1.231 3 11.2311 13 ...
分类:
其他好文 时间:
2018-07-26 23:31:40
阅读次数:
183
1. 继承与重写run方法 我们封装了Thread类,并设置成员函数run()为纯虚函数,因此我们使用类继承,并重写run方法: 如果用多态的话,可以用vector来保存父类指针,并初始化指向子类引用,不过使用vector<Thread*>我们时常会有困惑,那就是vector作为栈上变量,其程序结束 ...
分类:
编程语言 时间:
2018-07-26 19:59:25
阅读次数:
128
C++语言学习(十五)——C++抽象类与接口一、抽象类与接口1、抽象类简介面向对象的抽象类用于表示现实世界的抽象概念,是一种只能定义类型,不能产生对象的类(不能实例化),只能被继承并被重写相关函数,直接特征是相关函数没有完整实现。C++语言没有抽象类的概念,通过纯虚函数实现抽象类。纯虚函数是指定义原型的成员函数,C++中类如果存在纯虚函数就成为了抽象类。抽象类只能用作父类被继承,子类必须实现父类纯
分类:
编程语言 时间:
2018-07-22 20:04:12
阅读次数:
185
C语言是面向过程的语言,C++是面向对象的语言,区分它们面向什么的重要区别在于C++比C多个类。那么在我看来,抽象就是类的升华。 一般刚学习C++的时候,抽象这个东西给人最大的感觉就是太抽象,很难理解。心里总是想着,其实这样或那样就能解决这个问题了,为什么要学这个?增加一个抽象类还增加一段代码,费事 ...
分类:
其他好文 时间:
2018-07-19 23:29:40
阅读次数:
323
类中没有定义的虚函数称为纯虚函数,包含纯虚函数的类称为抽象类。 抽象类没有完整的描述对象,因此不允许创建抽象类的实例,该类存在的唯一理由是从中派生其他的类。 因为不能创建抽象类的对象,所以不能把它用作函数的参数类型或返回类型。 但是抽象类的指针或引用可以用作参数的或返回类型。 虚拟类默认的析构函数是 ...
分类:
编程语言 时间:
2018-07-17 16:25:14
阅读次数:
186