计算机等级考试 二级 C++实用技巧.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上学吧( ) C++实用技巧 复杂的东西写多了,如今写点简单的好了。由于功能上的需要,Vczh Library++3.0 被我搞得很离谱。为了开发维护的遍历、减少粗心犯下 的错误以及增强单元测试、回归测试和测试工具,因此记录下一些开 发上的小技巧,以便抛砖引玉,造福他人。欢迎高手来喷 C++实谓各种语言中的软肋,功能强大,陷阱更强大。当然我认 为一门语言用得不好完全是程序员的责任,不过因为C++涉及到的概 念实在是太多,想用好实在也不是一件容易的事情。C++开发的时候 总是会遇到各种各样的问题,其中最严重的无非是内存相关的。C 语 言由于结构简单,内存处理起来虽然不得力,但总的来说惯用法已经 深入人心,因此也不会造成什么很难发现的错误。C++就不一样了。 有了虚函数、构造函数、析构函数、复制构造函数和operator=重载之 后,还是有很多人喜欢把一个类直接写进文件流,或者拿来memset , 代码一团乱麻,不知悔改也。但是不能因此因噎废食,就像某人因为 C++带来的心智问题太多,自己搞不定,自己团队也搞不定,就说 C++不好一样。 因此第一篇文章主要针对内存来讲。我们处理内存,第一件事就 是不要有内存泄露。内存泄露不能等到测试的时候,通过长时间运行 程序并观察任务管理器的方法来做,这显然已经晚了。幸好 Visual C++给了我们一个十分好用的工具:_CrtDumpMemoryLeaks 函数。这 第 1 页,共 8 页 上学吧为您提供 “计算机等级考试”复习资料下载:/share/s23.html 上学吧( ) 个函数会在Debug 模式下往Visual Studio 的output 窗口打印出那个 时候你new (malloc )了但是还没delete (free )的所有内存块的地址、 长度、前N 个字节的内容和其他信息。怎么做呢?其实很简单: 1 #define _CRTDBG_MAP_ALLOC 2 #include 3 #include 4 #include 5 6 int wmain(vint argc , wchar_t* args[]) 7 { 8 // 这里运行程序,并在下面的函数调用之前delete 掉所有 new 的东西 第 2 页,共 8 页 上学吧为您提供 “计算机等级考试”复习资料下载:/share/s23.html 上学吧( ) 9 _CrtDumpMemoryLeaks(); 10 return 0; 11 } 上一篇文章讲到了如何检查内存泄露。其实只要肯用 C++的STL 里 面的高级功能的话,内存泄露是很容易避免的。我在开发 Vczh Library++ 3.0 的时候,所有的测试用例都保证跑完了没有内存泄露。 但是很可惜有些C++ 团队不能使用异常,更甚者不允许写构造函数析 构函数之类,前一个还好,后一个简直就是在用C。当然有这些变态 规定的地方 STL 都是用不了的,所以我们更加需要扎实的基础来开 发C++程序。 今天这一篇主要还是讲指针的问题。因为上一篇文章一笔带过, 今天就来详细讲内存泄漏或者野指针发生的各种情况。当然我不可能 一下子举出全部的例子,只能说一些常见的。 一、错误覆盖内存。 之前提到的不能随便乱memset 其实就是为了避免这个问题的。 其实memcpy 也不能乱用,我们来看一个例子,最简单的: 第 3 页,共 8 页 上学吧为您提供 “计算机等级考试”复习资料下载:/share/s23.html 上学吧( ) 1 #define MAX_STRING 20; 2 3 struct Student

文档评论(0)

wpxuang12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档