一、名词解释 1,多态 1)静态多态:a) 函数多态:函数重载,运算符重载 b) 模板多态:函数模板,类模板 2)动态多态:虚函数(切记:只有通过指针或引用才能实现动态多态性。"对象.虚函数“ 和 ”类::虚函数“ 这两种形式不能实现多态) 2,静态类型与动态类型 1) 静态类型:声明对象时,对象被 ...
分类:
其他好文 时间:
2016-08-25 20:59:06
阅读次数:
139
C++析构函数为什么要为虚函数 注:本文内容来源于zhice163博文,感谢作者的整理。 1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c7 ...
分类:
编程语言 时间:
2016-08-24 17:26:07
阅读次数:
175
参考这篇文章:http://blog.csdn.net/linyt/article/details/6336762 ...
分类:
编程语言 时间:
2016-08-24 11:13:41
阅读次数:
260
今天阅读《设计模式示例》,看到一段代码涉及到了interface,implements和extends,其实在C++中经常用到。今天特百度,比较了一下: interface是一个接口,类似于C++中的纯虚函数。举个简单的例子,有一类东西,都具有同样的行为,而这个共有的行为实现方式不一样。如:笔这类东 ...
分类:
编程语言 时间:
2016-08-22 19:39:33
阅读次数:
152
C++构造函数、析构函数、虚函数之间的关系 1. 如果我们定义了一个构造函数,编译器就不会再为我们生成默认构造函数了。2. 编译器生成的析构函数是非虚的,除非是一个子类,其父类有个虚析构,此时的函数虚特性来自父类。3. 有虚函数的类,几乎可以确定要有个虚析构函数。4. 如果一个类不可能是基类就不要申 ...
分类:
编程语言 时间:
2016-08-22 12:10:57
阅读次数:
173
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(vir ...
分类:
编程语言 时间:
2016-08-21 19:50:28
阅读次数:
528
一、C++程序设计直接支持三种程序设计模式(programming paradigms),程序模型、程序数据类型模型(OB)、面向对象模型(OO) 1、程序模型:类似C语言,用过程型语句组成。 2、抽象数据类型模型:所谓抽象就是讲实现和接口分离,显示提供接口,隐藏实现。(PS:不支持虚函数和多态)。 ...
分类:
编程语言 时间:
2016-08-21 11:00:47
阅读次数:
150
RTTI 运行时类型识别 typeid dynamic_cast dynamic_cast 注意事项: 1.只能应用于指针和引用之间的转化 2.要转换的类型中必须包含虚函数 3.转换成功返回的是子类的地址,失败返回NULL typeid注意事项: 1.typeid返回一个type_info对象的引用 ...
分类:
其他好文 时间:
2016-08-18 00:53:04
阅读次数:
203
http://blog.csdn.net/haoel/article/details/1948051/ C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通 ...
分类:
其他好文 时间:
2016-08-13 22:32:06
阅读次数:
181
意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 结构 Component:定义一个对象接口,可以给这些对象动态地添加职责;(纯虚函数) ConcreteComponent:定义一个具体的Component,继承自Component,重写了Com ...
分类:
其他好文 时间:
2016-08-12 11:48:25
阅读次数:
111