了解隐式接口和编译期多态 编译期多态和运行期多态 运行期多态就好比是virtual函数再运行的时候才确定该virtual函数该被绑定为哪个函数,运行的时候才确定函数类型。 编译期多态就好比是泛型编程和模板编程中,在编译的时候才确定哪个函数该被调用,根据函数的类型去确定。 显示接口和隐式接口 显示接口 ...
分类:
其他好文 时间:
2016-08-07 10:51:36
阅读次数:
169
这段代码是是以前virtual以前没认识到的地方,间接用指针或者引用调用虚函数还是动态绑定。 对动态绑定认识不够深刻啊, 指针|引用&virtual。 条款35:考虑virtual函数的其他选择 例子,游戏角色健康指数 温习: 1、使用no virtual interface(NVI)手法,那是te ...
分类:
编程语言 时间:
2016-08-02 13:02:56
阅读次数:
211
C++的学习总是一个漫长的过程。前一篇是关于输入、输出流同步的问题,今天又谈到虚函数,给人一种无序的杂乱感。先不管了,记录下来,好记性不如烂笔头。 一、什么是虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数 ...
分类:
其他好文 时间:
2016-08-01 00:26:00
阅读次数:
242
做课程大纲性质的记录,根据大纲思考,有扩展阅读补充 1、考虑类之间能有什么样的联系和关系:组合,委托,继承 2、组合:包含其他类的对象 委托:包含其他类的指针 继承:包含并扩展,大部分是公有继承,is-a 3、虚函数:非虚函数,虚函数(virtual),纯虚函数(virtual、函数后边=0) 3. ...
分类:
其他好文 时间:
2016-05-29 22:50:11
阅读次数:
143
1.籍由NVI手法实现TemplateMethod模式TemplateMethod模式对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。TemplateMethod提供了这种情况的一个实现框架。TemplateMethod模式是采用继承的方式实现这一点:..
分类:
编程语言 时间:
2016-05-27 22:09:52
阅读次数:
173
http://blog.sina.com.cn/s/blog_625ef6610101g9f2.html
定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定
义的成员函数
语法:virtual 函数返回类型 函数名(参数表) {函数体;}
用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数
虚函数必须是基类的非静态成员函...
分类:
编程语言 时间:
2016-05-22 12:37:47
阅读次数:
254
05.了解C++默默编写并调用哪些函数
06.若不想使用编译器自动生成的函数,就该明确拒绝
07.为多态基类声明virtual析构函数
08.别让异常逃离析构函数
09.绝不在构造和析构过程中调用virtual函数
10.令operator=返回一个reference to *this
11.在operator=中处理“自我赋值”
12.复制对象时勿忘其每一个成分...
分类:
其他好文 时间:
2016-05-12 15:21:40
阅读次数:
106
virtual , 写C++ 的都不会陌生吧,用于类的成员函数,用以表现对象多态的性质。为多态基类声明virtual 函数以前看书时,得到一条“黄金定律”(这是错误的):
永远应该以virtual 声明类的析构函数
如果不这么做,那么当类成为基类时,在回收对象内存,会发生不正确的行为,导致内存泄漏。这里就不在赘述细节了。乍一看,很有道理不是么,防患于未然。但是少年呀,不能这么年轻,轻易声明vir...
分类:
其他好文 时间:
2016-05-07 09:56:14
阅读次数:
199
工厂模式是指,定义一个创建对象的类(factory),利用这个来实例化指定子类。 1.简单工厂模式 例子,假如有一个code代码类,java,C#,C艹等等是该类的子类,通过codeFactory来实例化子类。并在子类中重写virtual函数print。 注:C艹中,如果用父类的指针释放子类的资源, ...
分类:
编程语言 时间:
2016-05-04 22:49:23
阅读次数:
232
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:绝对不要又一次而来的缺省參数值。由于缺省參数值都是静态绑定,而 virtual 函数 -- 你唯一应该覆写的东西 -- 却是动态绑定 演示样例: class Shape{ public: ...
分类:
编程语言 时间:
2016-04-11 10:23:32
阅读次数:
152