DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年12月23日

摘要: 一个类可以只有声明没有定义,如:classSimple ; //没有 阅读全文
posted @ 2013-12-23 16:12 DoubleLi 阅读(338) 评论(0) 推荐(0)

摘要: 1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(intx,inty);{return(x>y)?x:y ;}//函数2.float max(floatx,floaty){return (x>y)? x:y ;}//函数3.double max(doublex,doubley){return (c>y)? x:y ;}但如果在主函数中,我们分别 阅读全文
posted @ 2013-12-23 11:27 DoubleLi 阅读(413) 评论(0) 推荐(0)

摘要: 1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1;当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了。可以很直观的用下面的图表示: 引用计数算法的优点在于内存管理的开销分布于整个应用程序运行期间,非常的“平滑”,无需挂起应用程序的运行来做垃圾回收;而它的另外一个优势在于空间上的引用局部性比较好,当某个对象的引用计数值变为0时,系统无需访问位于堆中其他页面的单元,而后面我们将要看到的几种垃圾回收算法在回收前都回遍历所有的存活单元,这可能会引起换 阅读全文
posted @ 2013-12-23 10:48 DoubleLi 阅读(4021) 评论(0) 推荐(0)

摘要: remberthisstrncpy(a,b,5);a[5]='\0';chara[10];memset(a,'#',sizeof(a));a[10]='\0';刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数,希望对初学者有一定的帮助。C:charst[100];1.字符串长度strlen(st);2.字符串比较strcmp(st1,st2);strncmp(st1,st2,n);把st1,st2的前n个进行比较。3.附加strcat(st1,st2);strncat(st1,st2,n);n表示连接上st2的 阅读全文
posted @ 2013-12-23 10:47 DoubleLi 阅读(56702) 评论(0) 推荐(6)

摘要: 充分的利用调试工具可以非常方便地避免内存泄漏问题。 这里介绍两种方法,互为补充,第一种是VC编译器提供的方法,第二种是专用的内存泄漏检查工具Memmory Validator。这两种方法的基本原理是一样的:内存分配要通过CRT在运行时实现,只要在分配内存和释放内存时分别做好记录,程序结束时对比分配内存和释放内存的记录就可以确定是不是有内存泄漏。其中,第一种方法重载了new操作符,第二种方法是替换了CRT运行时库,在用户程序与运行库之间加了一层,用于记录内存分配情况。两种方法的不同是前者是在编译时完成的,分析内存情况的代码编译到执行文件中,用于程序的debug版本,后一种对编译过程没有影响,在执 阅读全文
posted @ 2013-12-23 10:29 DoubleLi 阅读(1384) 评论(0) 推荐(0)

摘要: 如果我们不十分清楚需要什么样的界面风格及如何实现,请按以下两个步骤操作: (1) 搞清楚这种风格叫什么名字(2) 查现有的比较著名的GUI库是否已有相应的实现方案。(3) 目前本文收集的信息涉及Qt,MFC,wxWidget简介本文收集有关界面开发的类库,不断更新。开发库分类QtQt用Qt的界面库开发的界面,注意Ribbon风格在Qt中是非常容易实现的,这个界面很可能是Ribbon风格流行前就已做好的,在Qt的框架中,Ribbon只是一个Tab页加一些动效果。Qxthttp://libqxt.org/一组对Qt的扩展Developer Machines公司http://www.devmachi 阅读全文
posted @ 2013-12-23 10:27 DoubleLi 阅读(1469) 评论(0) 推荐(0)

摘要: 一切尽在代码中。#include #include #include using namespace std ;int main(void) { map m ; m.insert(pair(1, "abc")) ; m.insert(pair(2, "def")) ; m.insert(pair(3, "def")) ; m.insert(pair(4, "ghi")) ; map::iterator itor ; // 错误的写法 for (itor = m.begin(); itor != m.end(); + 阅读全文
posted @ 2013-12-23 10:18 DoubleLi 阅读(3475) 评论(0) 推荐(0)