一、C++多态 C++的多态包括静态多态和动态多态。静态多态包括函数重载和泛型编程,动态多态包括虚函数。静态多态是指在编译期间就可以确定,动态多态是指在程序运行时才能确定。 二、虚函数 1、虚函数为类的非静态成员函数,访问权限一般为public。函数声明时,在返回值前加virtual关键字,函数定义 ...
分类:
编程语言 时间:
2018-05-25 11:06:20
阅读次数:
163
1 #include 2 using namespace std; 3 /************************************************************************/ 4 /*抽象类不能定义对象,为了强调一个类为抽象类,可将该类的构造函数说明为保... ...
分类:
其他好文 时间:
2018-05-22 12:40:30
阅读次数:
160
假设为某一组对象提供了一个抽象的规范,其中有一个方法,需要被该对象内部调用,因此不需要对外开放。但是该方法在不同的对象内的行为是不一样的,这就需要不同的对象给出自己的实现。这种情况下,私有的纯虚函数是非常好的选择。 执行结果为 derived::func2() NVI(non -virtual-in ...
分类:
其他好文 时间:
2018-05-21 18:00:25
阅读次数:
176
纯虚函数和抽象类 1基本概念 2抽象类案例 3抽象类在多继承中的应用 C++中没有Java中的接口概念,抽象类可以模拟Java中的接口类。(接口和协议) 3.1有关多继承的说明 工程上的多继承 被实际开发经验抛弃的多继承 工程开发中真正意义上的多继承是几乎不被使用的 多重继承带来的代码复杂性远多于其... ...
分类:
编程语言 时间:
2018-05-01 14:02:45
阅读次数:
189
#define MANIPULATOR_W 0x01#define MANIPULATOR_A 0x02#define MANIPULATOR_S 0x04#define MANIPULATOR_D 0x08#define MANIPULATOR_R 0x10#define MANIPULATOR_ ...
分类:
其他好文 时间:
2018-04-08 18:11:31
阅读次数:
748
从已有的类派生出新的类,叫继承。派生类继承了基类的特征和方法。 公有继承:基类的公有成员成为派生类的公有成员;基类的私有成员成为派生类的一部分,但只能通过基类成员方法和保护方法访问。 派生类构造函数,通过成员初始化列表的方式指明使用的基类构造函数,并传递基类信息。非构造函数不能使用初始化列表语法。 ...
分类:
编程语言 时间:
2018-04-05 15:29:37
阅读次数:
224
c++通过纯虚函数(pure virtual function)提供未实现的函数。纯虚函数申明结尾处=0。注意纯虚函数本身就符号虚函数,所以前面也要有virtual。 有纯虚函数的类叫做ABC(abstract base class),迫使派生类遵循A ...
分类:
其他好文 时间:
2018-04-02 00:11:38
阅读次数:
154
分清虚函数和纯虚函数的区别:(1).虚函数是函数前加关键字virtual,一般定义格式为:virtual 类型 函数名 (参数表){ 函数体 } (2).纯虚函数的生命格式为: virtual 类型 函数名 (参数表)=0; 即没有函数体。 (3).带有纯虚函数的类为抽象类: 例:class 类名{ ...
分类:
编程语言 时间:
2018-03-30 21:35:54
阅读次数:
136
抽象类,含有纯虚函数的类,不可以创建对象。 然而,有时我们并不需要某个函数定义为纯虚函数,但是任然希望此类像抽象类一样,不可以创建对象。 方法1:通过确保类中不存在共有构造函数来模拟抽象基类的性质。意味着,我们必须至少显示地声明一个构造函数和一个复制构造函数,防止编译器隐式公有的内联的构造函数。声明 ...
分类:
编程语言 时间:
2018-03-20 18:17:20
阅读次数:
227
C++虚函数与纯虚函数用法与区别(转) 1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。 2. 虚函数可以被直接使用,也可以被子类(sub cla ...
分类:
编程语言 时间:
2018-03-18 21:37:36
阅读次数:
165