今天做了一天的课程设计,不过还是没有搞定,还好弄懂了虚函数的用法。哎,感觉自己真是太不够认真了,很多知识点其实老师在上课的时候都有提过,还是自己没有预习,上课的时候听得迷迷糊糊的,课下再来做东西真的好吃力,学习真的需要方法。还有就是自己感觉自己耐心还是不够,要沉住气,把书本的知识点真的要看进去,看透 ...
分类:
其他好文 时间:
2016-06-05 21:32:45
阅读次数:
164
1.静态联编和动态联编联编:将源代码中的函数调用解释为要执行函数代码。静态联编:编译时能确定唯一函数。在C中,每个函数名都能确定唯一的函数代码。在C++中,因为有函数重载,编译器须根据函数名,参数才能确定唯一的函数代码。动态联编:编译时不能确定调用的函数代码,运行时才能。C++中因为多态的存在,有时 ...
分类:
编程语言 时间:
2016-06-05 06:33:00
阅读次数:
380
最近在看memcached的源码,觉得它那种libevent+多线程的服务器模型真的很不错,我将这个模型封装成一个C++类,根据我的简单测试,这个模型的效率真的很不错,欢迎大家试用。 这个类的使用方法很简单(缺点是不太灵活),只要派生一个类,根据需要重写以下这几个虚函数就行了: 如果大家有什么建议或 ...
分类:
编程语言 时间:
2016-06-03 18:44:35
阅读次数:
235
编译器到底做了什么实现的虚函数的晚绑定呢?我们来探个究竟。 编译器对每个包含虚函数的类创建一个表(称为V TA B L E)。在V TA B L E中,编译器放置特定类的虚函数地址。在每个带有虚函数的类 中,编译器秘密地置一指针,称为v p o i n t e r(缩写为V P T R),指向这个对 ...
分类:
编程语言 时间:
2016-06-02 09:52:08
阅读次数:
245
上一篇 从引用传递到设计模式 (上) 的文末,提到非虚拟接口 NVI 的实现,即将虚函数声明为保护型或私有型,借由模板函数模式来实现 。 园友 @KillU 看的很仔细,提出了一个问题:虚函数是 private 类型,继承可以么? 答案是:可以 5 实现权和调用权 <Effective C++> 中 ...
分类:
其他好文 时间:
2016-06-02 06:15:14
阅读次数:
247
书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。 工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 ...
分类:
编程语言 时间:
2016-05-31 15:44:25
阅读次数:
194
老师的要求是给出shape类,派生出梯形,圆形,正方形和矩形4个类,然后根据他们的面积进行排序并且输出相应的信息。 一开始我遇到了一个问题,我没有将4个派生类定义成数组,导致定义出来的某个类对象使用完之后就被抹除了,从而导致原先的基类指针数组的指向丢失。纯虚函数的工作原理就是指针指向这个类,所以这个 ...
分类:
其他好文 时间:
2016-05-30 20:03:02
阅读次数:
142
多态与虚函数 13章的简单继承只是实现了对已有对象的实现的重定义和直接调用,但是向上映射导致的对象切割仍然是个缺陷; 1、延续13章的向上映射 简单继承中,派生类重定义了基类的成员函数,此时,向上映射的结果是很明显的,它使用了基类实现的函数版本,这显然并不是我们想要的效果;为什么会有这样的结果发生, ...
分类:
编程语言 时间:
2016-05-29 22:59:55
阅读次数:
183
今天看了的,感觉需要了解对象内存的问题。 1.何为C++对象模型? 引用《深度探索C++对象模型》这本书中的话: 有两个概念可以解释C++对象模型: 语言中直接支持面向对象程序设计的部分。 对于各种支持的底层实现机制。 直接支持面向对象程序设计,包括了构造函数、析构函数、多态、虚函数等等,这些内容在 ...
分类:
编程语言 时间:
2016-05-29 22:50:12
阅读次数:
341
做课程大纲性质的记录,根据大纲思考,有扩展阅读补充 1、考虑类之间能有什么样的联系和关系:组合,委托,继承 2、组合:包含其他类的对象 委托:包含其他类的指针 继承:包含并扩展,大部分是公有继承,is-a 3、虚函数:非虚函数,虚函数(virtual),纯虚函数(virtual、函数后边=0) 3. ...
分类:
其他好文 时间:
2016-05-29 22:50:11
阅读次数:
143