
C++
文章平均质量分 74
bertzhang
这个作者很懒,什么都没留下…
展开
-
大量创建的对象需要谨慎构建其数据成员
我们在一些一个class或者struct时,数据成员的顺序对程序的编译和执行没有什么影响,但对class或struct占用的空间却可能产生影响。因此适当的排列数据成员的顺序,以及精心的计划class或struct中数据成员的大小,对于那些需要创建几万、几十万、几千万的对象来说,空间上的差别就很有价值了。下面先看看一个利用struct将一个4字节的整数分成两部分用的例子:struct P原创 2012-01-31 15:30:56 · 872 阅读 · 0 评论 -
[C++]字节对齐与结构体大小
转自:http://pppboy.blog.163.com/blog/static/30203796201082494026399/说明:结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的size转载 2012-01-31 15:32:57 · 682 阅读 · 0 评论 -
函数对象与函数指针
C++中函数对象和函数指针可以为程序的设计提供非常高的灵活性,比如:一棵二叉树中的元素可能多种类型,不同的类型有不同的访问方法,因此可以将不同的访问方法作为参数传入进去,具体访问方法如何实现则由用户决定,当遍历二叉树时,用户传入自己编写的节点访问方法,就可以实现不同的访问策略。另外在stl的各种算法中也都允许传入大小比较等用户定制的计算策略。 因此适当的利用函数对象和函数指针具有提升程序弹原创 2012-01-30 14:48:01 · 1058 阅读 · 0 评论 -
泛型编程的一个特例
1、在编写模板函数时,通常在形参中会使用到泛型类型,这样在调用泛型函数时,直接使用就可一了,如果泛型函数没有参数,而函数内部使用了泛型类型,如果直接调用就会出错,而应个在函数名后明确指明泛型的类型。我觉得,对于第一种情况,由于编译器可以从参数中获得泛型的类型,所以不用明确指定了,而对于第二种情况,因为编译器无法从参数中获得泛型的类型,所以必须明确指定。举例如下:#include templa原创 2012-02-04 09:48:37 · 588 阅读 · 0 评论 -
C++的内存管理
以前看过几次C++的内存管理,一直印象不够深刻,看来只有实际总结和操作一下才能更好的掌握。自己管理内存的原因: 自己管理内存通常是出于对性能的需求,需要重新定义内存的管理策略。因为缺省的内存管理策略,可能不能满足多种的内存需要。基本知识(一): 1、我们new一个对象时,要完成3件事:1)调用operator new申请内存; 2)调用对象构造函数;3)返回对象指针 2、我们原创 2012-01-17 16:57:14 · 860 阅读 · 0 评论