解耦合 和 模块的划分 c++没有接口的概念 但可以使用纯虚函数(抽象类)实现接口的功能 纯虚函数和抽象类纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软件的模块功能更划分) 纯虚函数说明形式: virtua ...
分类:
其他好文 时间:
2016-07-22 21:11:55
阅读次数:
157
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。
2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。
3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。
4. 多态用虚函数来实现,结合动态绑定。
5. 纯虚函数是虚函数再加上= 0。
6. 抽象类是指包...
分类:
编程语言 时间:
2016-07-16 23:46:56
阅读次数:
493
第8章 虚函数与多态性 多态性是指一个名字,多种语义;或界面相同,多种实现。 重载函数是多态性的一种简单形式。 虚函数允许函数调用与函数体的联系在运行时才进行,称为动态联编。 8.1 静态联编 8.2 类指针的关系 8.3 虚函数与动态联编 8.4 纯虚函数与抽象类 8.5 虚函数和多态性的应用 小 ...
分类:
其他好文 时间:
2016-07-14 03:12:25
阅读次数:
157
/* 题目63:编写C++程序完成以下功能: (1)声明一个纯虚函数类Shape(形状),其中包含来计算面积、计算周长的方法; (2)从Shape派生两个类矩形和圆形; (3)从矩形派生正方形; (4)分别实现派生类构造函数、析构函数和其他方法; (5)创建派生类的对象,观察构造函数、析构函数调用次 ...
分类:
编程语言 时间:
2016-07-10 21:42:06
阅读次数:
209
虚函数与纯虚函数:
引入虚函数是为了动态绑定,引入纯虚函数是为了派生接口
基类需要虚的析构函数的原因:
当derived class由一个base class指针被删除而该base class指针为non-virtual的时候,可能会发生内存泄漏,使用虚的析构函数可以解决该问题
++i与i++的区别://i++ 实现代码为:
int operator++(int)
{
int...
分类:
编程语言 时间:
2016-07-06 15:14:55
阅读次数:
335
父类 FC FatherClass 子类 SC SonClass 一 ,虚函数 C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。子类可以重写父类的虚函数实现子类的特殊化。 如下就是一个父类中的虚函数: 二 ,纯虚函数 C++中包含纯虚函数的类,被称为是“抽象 ...
分类:
编程语言 时间:
2016-07-04 22:00:53
阅读次数:
182
目录
1. 多态性都有哪些?动态绑定怎么实现? 3
2. 虚函数,虚函数表里面内存如何分配? 3
3. 纯虚函数如何定义,为什么析构函数要定义成虚函数? 4
4. C++中哪些不能是虚函数? 4
5. 类型转换有哪些? (参考) 4
6. 为什么要用static_cast转换而不用c语言中的转换? 4
7. 操作符重载(+操作符),具体如何去定义...
分类:
编程语言 时间:
2016-06-28 13:08:11
阅读次数:
260
在C#中使用关键字 abstract 来定义抽象类和抽象方法。 不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例。 "一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步一个抽象类只能通过接口和作为其它类的基类使用."- C++ Program ...
CMakeLists.txt project(virtual) # 创建工程 virtual add_library(virtual SHARED virtual.cpp) # 创建动态连接库 libvirtual.dll add_executable(main main.cpp) # 创建运行程序... ...
分类:
编程语言 时间:
2016-06-15 15:36:06
阅读次数:
273
1.纯虚函数 virtal void function() = 0; 不能实例化, 因为此函数没有实体, 用于派生有实体的类 所以不能实例化含有纯虚函数的class 2.静态多态 3.模板(动态多态) 泛型编程 函数模板 template<typename T> T maximun(T n1, T ...
分类:
编程语言 时间:
2016-06-15 12:43:38
阅读次数:
246