随笔 - 78  文章 - 1  trackbacks - 0
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

     摘要: 首先应该知道malloc 和free是匹配的;new和delete是匹配的,他们不可以混淆。 malloc和new都申请空间,但是new是强类型的分配,会调用对象的构造函数初始化对象,而malloc仅分配内存空间但是不初始化。new 自适应类型,malloc需要强制转换new按类型进行分配,malloc需要指定内存大小对于对象来说free的确释放了对象的内存,但是不调用对象的析构函数。delete不仅释放对象的内存,并且调用对象的析构函数所以在对象中用free删除new创建的对象,内存就有可能泄露在delete内部仍调用了free   阅读全文
posted @ 2008-10-30 10:41 Carrie 阅读(234) | 评论 (1)编辑 收藏
     摘要: 文件I/O

  虽然使用CArchive类内建的序列化功能是保存和加载持久性数据的便捷方式,但有时在程序中需要对文件处理过程拥有更多的控制权,对于这种文件输入输出(I/O)服务的需求,Windows提供了一系列相关的API函数,并由MFC将其封装为CFile类,提供了对文件进行打开,关闭,读,写,删除,重命名以及获取文件信息等文件操作的基本功能,足以处理任意类型的文件操作。CFile类是MFC文件类的基类,支持无缓冲的二进制输入输出,也可以通过与CArchive类的配合使用而支持对MFC对象的带缓冲的序列化。  阅读全文
posted @ 2008-10-26 20:08 Carrie 阅读(339) | 评论 (0)编辑 收藏
     摘要: 自定义持久类

  为了使一个类的对象成为持久的,可以自定义一个持久类,将持久性数据的存储和加载的工作交由自定义类自己去完成。这种处理方式也更加符合面向对象的程序设计要求。可以通过下面几个基本步骤来创建一个能序列化其成员变量的自定义持久类:

  1. 直接或间接从CObject类派生出一个新类。

  2. 在类的声明部分包含MFC的DECLARE_SERIAL宏,该宏只需要将类名作为参数。

  3. 重载基类的Serialize()函数,并添加对数据成员进行序列化的代码。  阅读全文
posted @ 2008-10-26 20:06 Carrie 阅读(194) | 评论 (0)编辑 收藏
     摘要: 持久性是对象所有的保存和加载其状态数据的能力。具有这种能力的对象能够在应用程序结束之前以某种方式将当前的对象状态数据记录下来,当程序再次运行时,通过对这些数据的读取而恢复到上一次任务结束时的状态。由于绝大多数的MFC类是直接或间接由MFC的CObject类派生出来的,因此这些MFC类都具有保存和加载对象状态的能力,是具有持久性的。在使用应用程序向导生成文档/视结构的程序框架时,就已经为应用程序提供了用于对象状态数据保存和加载的基本代码。

  阅读全文
posted @ 2008-10-26 20:05 Carrie 阅读(186) | 评论 (0)编辑 收藏
     摘要: socket是网络编程的基础,本文用打电话来类比socket通信中建立TCP连接的过程。
socket函数,表示你买了或者借了一部手机。
bind函数,告诉别人你的手机号码,让他们给你打电话。
listen函数,打开手机的铃声,而不是静音,这样有电话时可以立马反应。listen函数的第二个参数,最大连接数,表示最多有几个人可以同时拨打你的号码。不过我们的手机,最多只能有一个人打进来,要不然就提示占线。
connect函数,你的朋友知道了你的号码,通过这个号码来联系你。在他等待你回应的时候,不能做其他事情,所以connect函数是阻塞的。
accept函数,你听到了电话铃声,接电话,accept it!然后“喂”一声,你的朋友听到你的回应,知道电话已经打进去了。至此,一个TCP连接建立了。  阅读全文
posted @ 2008-10-26 20:03 Carrie 阅读(210) | 评论 (0)编辑 收藏
     摘要: 海盗分金问题 Description:
传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
1.抽签决定各人的号码(1,2,3,4,5);
2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;
3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;
4.往下依次类推……
根据上面的这个故事,现在提出如下的一个问题.即:  阅读全文
posted @ 2008-10-25 15:30 Carrie 阅读(155) | 评论 (0)编辑 收藏
     摘要: 在STL中基本容器有: string、vector、list、deque、set、map

set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问

set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少
map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了

string、vector、list、deque、set 是有序容器  阅读全文
posted @ 2008-10-25 14:55 Carrie 阅读(310) | 评论 (0)编辑 收藏
仅列出标题
共8页: 1 2 3 4 5 6 7 8