![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++技能
啸狼
不能停
展开
-
C++异常传递的三种方式
在C++中处理异常时,和传递函数参数一样,有三种传递异常的方式:按值、按引用、按指针。这三种方式与传递参数的三种方式有相似之处,但也有很大的不同,下面简单说明一下传递异常的这三种方式的区别。 按值传递异常,会生成两个对象拷贝(函数参数传递只生成一个拷贝),按引用传递也会生成一个临时对象,但按引用相对按值传递来说少了一份对象的拷贝。有人会觉得奇怪,为什么按引用传递异常也会生成临时对象。原创 2008-11-11 17:32:00 · 2407 阅读 · 0 评论 -
VC 2005 解决方案的目录结构设置和管理
一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。 所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变得十分容易。 解决方案与项目:转载 2009-01-21 09:00:00 · 1357 阅读 · 0 评论 -
OGRE全面分析一:Root
最近在研究OGRE三维渲染引擎,为了加深学习印象,同时也希望能给其他也在学习OGRE的朋友有点帮助,所以决定把学习到的一些东西写下来,也好有个纪念,呵呵。有不对的地方,还请高手们指正。(要过年了,回来继续,今天暂且开个引子先)原创 2009-01-21 16:07:00 · 1081 阅读 · 0 评论 -
小议内存管理的效率——栈与堆的效率分析
栈上的内存是系统自动分配的,压栈和出栈都有相应的指令操作,效率较高,而且分配的内存是连续的,不会产生内存碎片。而堆上的内存需要人为创建,当申请或释放一块内存时,系统需要根据一定的算法在堆空间上寻找合适的内存堆空间,同时修改维护堆空闲空间的链表,然后返回地址给程序,效率比较低,而且容易产生碎片。特别是连续创建和删除占用内存较小的数据或对象时,很容易产生内存碎片。此外,在堆上分配内存容易引起内存缺页,原创 2009-08-03 14:59:00 · 1962 阅读 · 0 评论 -
C++对象内存结构
对简单对象来说,内存结构布局很简单,遵循以下描述:1、非静态数据成员是影响对象所占据内存大小的主要因素,随着对象的增加而增加;2、所有对象共享一份静态数据成员,用sizeof计算对象大小时不会包含静态数据成员占据内存的大小;3、静态成员函数和非静态成员函数不影响对象内存的大小;4、如果对象中包含虚函数,会增加4字节的空间用来保存虚函数表指针。 对单继承类,遵循如下描述:原创 2009-08-03 15:12:00 · 1087 阅读 · 0 评论 -
C++笔试题目大全(笔试宝典)(不断完善中)
<! v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0原创 2009-05-21 16:17:00 · 34146 阅读 · 14 评论 -
强指针和弱指针
在Android的源代码中,经常会看到形如:sp、wp这样的类型定义,这其实是Android中的智能指针。智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题。在C++编程中,有两个很让人头痛的问题:一是忘记释放动态申请的对象从而造成内存泄露;二是对象在转载 2011-08-03 09:16:53 · 1077 阅读 · 0 评论