
C++
Alan S1
这个作者很懒,什么都没留下…
展开
-
实实在在说多态
实实在在说多态(C++篇)1. 什么是多态... 12. 多态带来的好处... 13. C++中实现多态的方式... 14. 细说用函数重载实现的多态... 25. 细说用模板函数实现的多态... 36. 小结... 47. 细说用虚函数实现的多态... 47.1. 虚函数是怎么回事... 47.2. 向转载 2007-03-16 12:40:00 · 843 阅读 · 0 评论 -
模板片特化的程序
看打印输出是多少? #include using namespace std;templateclass c{ T m[size];public: void print_size() { std::cout原创 2008-12-23 20:37:00 · 1013 阅读 · 0 评论 -
补码的应用:从buffer里的一段char*根据数据类型和长度转换成相应的整型
int64 GetFmtValue(const unsigned char *des,uint8 size,uint8 type) { int64 ret = 0; memcpy( &ret, des, size ); if (type == VALUE_TYPE_DEC) { int headBits = (sizeof(原创 2009-03-07 16:29:00 · 848 阅读 · 0 评论 -
[转]c++资源之不完全导引
无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书中指出“C++是最为难学的高级程序设计语言之一”,人们常将“之一”去掉以表达自己对C++的敬畏。诚然,C++程序设计语言对于学习者的确有很多难以逾越的鸿沟,体系结构的庞大,应接不暇并不断扩充的特性……除此之外,参考资料之多与冗杂使它的学习者望而却步转载 2007-10-29 23:41:00 · 908 阅读 · 0 评论 -
解析动态联编
文章摘要多态性是C++最主要的特征,多态性的实现得益于C++中的动态联编技术。文章通过对动态联编的关键技术虚拟函数表进行深入的剖析,解析的动态联编的过程极其技术要领。 关键字 多态性 动态联编 VTABLE 虚函数 文章正文 一 从多态性谈动态联编的必要性在进入主题之前先介绍一下联编的概念。联编就是将模块或者函数合并在一起生成可 执行代码的处理过程,同时对每个模块或者函数调用分配转载 2007-04-02 21:26:00 · 1247 阅读 · 0 评论 -
调用约定 Calling convention
调用约定(Calling convention):决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定。函数调用约定有多种,这里简单说一下: 1、__stdcall调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pas转载 2007-04-05 18:38:00 · 846 阅读 · 0 评论 -
C++类库介绍
1、 Dinkumware C++ Library 参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobbs程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品中采用Dinkumware的库。 2转载 2007-03-22 19:19:00 · 911 阅读 · 0 评论 -
如何用正确的方法来写出质量好的软件的75条体会
如何用正确的方法来写出质量好的软件的75条体会原文:此文为转载,若有知其出处者,请告知1. 你们的项目组使用源代码管理工具了么?应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。2. 你们的项目组使用缺陷管理系统了么?应该用。ClearQuest太复杂,我的推荐是BugZilla。 3. 你们的测试组还在用Word写测试用例么?不转载 2007-03-21 13:42:00 · 782 阅读 · 0 评论 -
三种内存分配模式
系统为进程分配数据空间有三种形式。静态分配整块静态分配空间,包括其中的所有数据实体,都是在进程创建时由系统一次性分配的(同时为UNIX称为Text的代码分配空间)。这块空间在进程运行期间保持不变。初始化的和未初始化的实体分别放在初始化数据段和未初始化数据段(BSS)。后者和前者不同,在.o文件a.out文件里都不存在(只有构架信息),在进程的虚拟空间里才展开。extern转载 2007-03-20 18:58:00 · 992 阅读 · 0 评论 -
常见内存错误
出处:http://blog.youkuaiyun.com/absurd 随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。 而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难转载 2007-03-20 20:14:00 · 743 阅读 · 0 评论 -
设计log函数库的几个要点
只要留意一下大项目的源码,你会发现,几乎无一例外的包括一个log模块。它的功能很直观:记录一些程序运行时信息,多数情况是用来辅助debug的。大项目都有一套的log的函数,在它的基础上开发,调用它提供的Log函数就行了,比如linux内核、apache等。也有开源log函数库,可以直接拿过用。这里,我们并不鼓励重新发明轮子,但在少数情况下,确实不得不编写自己的log函数。下面是对以前的经验的总结,转载 2007-03-20 20:10:00 · 1111 阅读 · 0 评论 -
C语言高效编程的的四大绝招
引言: 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。 例如:字符串的赋值。 方法A:通常的办法:#define LEN 32char s转载 2007-03-20 10:11:00 · 592 阅读 · 0 评论 -
读书摘要:大规模C++程序设计
引言 与主流观点相反,从根本上说,最普通形式的面向对象程序要比对应的面向过程的程序更难测试和校验。通过虚函数改变内部行为的能力可能导致类不变式无效;而对于程序的正确性来说,类不变式是必要的。 第一部分 基础知识 对符号名称的使用,而不是声明本身,导致一个未定义符号被引入到.o目标文件中。 typedef声明是的性质属于"internal linkage",尽管转载 2009-08-14 21:19:00 · 1749 阅读 · 0 评论