C++语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。 相对于智能指针,使用这来年刚给运算符管理内存非常容易出错,随着我们逐步详细介绍这两个四月份,这一点会更为清楚。而且,自己直接管理内存的类与使用智能指针的类不同,它们不能依赖类对象拷贝、赋值和销毁 ...
分类:
其他好文 时间:
2018-02-23 17:10:23
阅读次数:
166
由编译器自动分配的内存都有着严格的生存期。全局对象在程序启动时分配,在程序结束时销毁。对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。局部static对象在第一次使用前分配,在程序结束时销毁。 除了自动和static对象外,C++还支持动态分配对象。动态分配的对象的生存期与它 ...
分类:
其他好文 时间:
2018-02-23 17:06:45
阅读次数:
173
目前为止我们学过静态内存和栈内存,分配在其中的对象由编译器自动创建和销毁, 静态内存:用来保存局部static对象、类的static数据成员、以及定义在任何函数体之外的变量。在对象使用之前分配,程序结束时销毁。 栈内存:用来保存定义在函数内的非static对象。仅在对象定义的程序块运行时存在,程序块 ...
分类:
编程语言 时间:
2018-02-20 23:57:06
阅读次数:
298
1)字符编码Thrift采用多字节的编码方式,在使用log4cplus进行日志管理的时候,同样需要编译一个多字节的字符编码的版本,否则就会出现log4cplus中无法解析的函数符号 2)Boost链接动态库libthrift要求boost库的智能指针,线程库以及librt注意:bool interruptible_wait(detail::win32::handle handle_to_
分类:
其他好文 时间:
2018-02-17 13:27:03
阅读次数:
190
C++虐我千百遍,我待C++如初恋 从智能指针说起 对高手而言。指针是上天入地的神器。对新手而言,那简直是灾难的源泉。高级语言如Java,C#都自己主动管理内存。你仅仅管new。不必担心内存释放问题。Bjarne StroustrupC觉得++增加垃圾回收机制将做不适合系统底层的开发,为此C++提倡 ...
分类:
其他好文 时间:
2018-02-10 19:27:26
阅读次数:
192
静态内存用来保存局部的static对象和类static数据成员,以及定义在任何函数之外的变量。除了静态内存和栈内存,每个程序还有一个内存池,这部分内存被称作自由空间或堆,用来存储动态分配的对象。动态内存的管理通过new和delete运算符实现。新的标准定义了两种智能指针类型来管理动态对象,share ...
分类:
其他好文 时间:
2018-02-07 15:01:02
阅读次数:
163
静态内存用来保存局部 static 对象、类 static 数据成员 以及任何定义在函数之外的变量。栈内存用来存储定义在函数内部的非 static 对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在其定义的程序块运行时才存在;static 对象在使用之前分配,在程序结束时销毁。 ...
分类:
其他好文 时间:
2018-01-31 22:13:56
阅读次数:
187
最近要使用C++11的智能指针,先留个头,代码里试验一遍,回头补博客。 参考博客:https://www.cnblogs.com/wxquare/p/4759020.html ...
分类:
编程语言 时间:
2018-01-19 11:27:56
阅读次数:
204
今天在网上看到一篇关于智能指针的文章,感觉很不错,故转载来学习下。 原文出自:https://www.cnblogs.com/lanxuezaipiao/p/4132096.html 导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解 ...
分类:
编程语言 时间:
2018-01-18 23:13:26
阅读次数:
372
智能指针的设计初衷是: C++中没有提供自己主动回收内存的机制,每次new对象之后都须要手动delete。稍不注意就memory leak。 智能指针能够解决上面遇到的问题。 C++中常见的智能指针包含(共七种): std::auto_ptr boost::scoped_ptr boost::sha ...
分类:
编程语言 时间:
2018-01-15 12:32:12
阅读次数:
186