摘要: auto_ptr的设计动机 C++标准程序库提供的auto_ptr是一种智能型指针(smart pointer),帮助程序员防止“被异常抛出时发生资源泄露”。 函数的操作经常依以下模式进行: 1.获取一些资源 2.执行一些操作 3.释放所获取的资源 如果一开始所获取的资源被绑定于局部对象(local objects)身上,当函数退出时,他们的析构函数(destructor)被调用,从而自动释放这些资源。然而事情不总是这么顺利,如果资源是以显示手法获得,而且没有绑定在任何对象身上,那就必须以显示的手法释放。这种情形通常发生在指针身上。 一个典型的例子就是运用new 和 delete 来产生和销毁 阅读全文
posted @ 2013-10-27 11:20 西芒xiaoP 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.programlife.net/msvc-crt-startup.html在程序进入main/WinMain函数之前,需要先进行C运行库的初始化操作,通过在Visual Studio中调试,通过栈回溯可以找到位于crt0.c中的_tmainCRTStartup函数,这个函数负责进行一些初始化操作,_tmainCRTStartup的上一层调用来自kernel32.dll。这里简单分析一下crt0.c的代码。实际上,C运行库代码又有两个版本,如果是静态编译的话代码位于crt0.c之中,如果是动态编译的话代码位于crtexe.c之中,这里可以通过项目属性的“配置属性” 阅读全文
posted @ 2013-10-27 10:29 西芒xiaoP 阅读(2658) 评论(0) 推荐(0) 编辑
摘要: 原文链接:吴豆豆http://www.cnblogs.com/gdutbean/archive/2012/03/30/2425201.htmlBoost库Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、 可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的 发起人Dawes 阅读全文
posted @ 2013-10-27 10:12 西芒xiaoP 阅读(531) 评论(0) 推荐(0) 编辑