智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。...
分类:
编程语言 时间:
2015-01-22 17:47:34
阅读次数:
323
在C++中,程序员可以直接操作内存,给编程增加了不少的灵活性。但是灵活性是有代价的,程序员必须负责自己负责释放自己申请的内存,否则就会出现内存泄露。智能指针就是为了解决这个问题而存在的。它和其他指针没有本质的区别,主要的目的就是为了避免悬挂指针、内存泄露的问题。在这里,我使用对象的应用计数做了一个s...
分类:
编程语言 时间:
2015-01-22 10:46:12
阅读次数:
236
01.#include 02.#include 03.#include 04.05.typedef std::list list_any;06.07.//关键部分:能够存放随意类型的对象08.void fill_list(list_any& la)09.{10. la.push_back(1000)...
分类:
其他好文 时间:
2015-01-21 22:00:33
阅读次数:
335
先看一段能够正常执行的代码,但会造成内存泄漏:
deleteObject.h
实现删除一个CObjectItem的派生类的指针所指的内存
#pragma once
namespace smtlCheck
{
class CObjectItem;
class CDeleteObject
{
public:
CDeleteObject(void);
~CDeleteObje...
分类:
其他好文 时间:
2015-01-21 15:16:22
阅读次数:
176
本文做如下简化:
1,假定所有维元素都是5。
2,不考虑const的[]。
3,由于只是熟悉原理,不考虑各种异常情况。
问题一,请实现一个一维整形数组,只需重载[]。
问题二,请实现一个二维整形数组,只需重载[]。
源码如下:
class CIntArray1
{
public:
int& operator[](int index)
{...
分类:
编程语言 时间:
2015-01-21 13:30:47
阅读次数:
230
方法一:去Macports官网的下载页面(https://distfiles.macports.org/MacPorts/)下载对用Mac系统的pkg文件,下载完成之后,双击,一路【下一步】,到安装按成。打开一个新终端:输入sudo port install boost,提示输入密码,输入你当前使用...
分类:
系统相关 时间:
2015-01-21 01:10:10
阅读次数:
411
无论如何使用,都能感觉到使用boost.asio实现服务器,不仅是一件非常轻松的事,而且代码很漂亮,逻辑也相当清晰,这点上很不同于ACE。使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列...
分类:
其他好文 时间:
2015-01-20 13:29:41
阅读次数:
389
上学的时候不知道数据结构是什么,也不知道它干什么的用的,所以浑浑噩噩的学完了。现在转型做c++开发才发现这东西很重要,虽然有STL和BOOSt,但是有什么比自己实现一个更方便的呢。数据结构是什么 这个没有什么什么标准答案,最通常的说法就是:数据元素和数据元素之间的关系。我们从实际问题出发,抽象出数....
分类:
其他好文 时间:
2015-01-19 23:29:59
阅读次数:
204
项目用到boost::asio,boost::serialization, Android打包环境配置 ... 做个记录,下次别又掉到这坑里浪费时间1. 安装Cygwin :下载Cygwin (http://www.cygwin.com/)安装时,默认设置,只选择Devel,将后面的Default改...
分类:
移动开发 时间:
2015-01-19 19:03:45
阅读次数:
663
read/write方法这些方法对一个流进行读写操作(能够是套接字,或者其它表现的像流的类):async_read(stream, buffer [, completion],handler):这种方法异步地从一个流读取。结束时,处理方法被调用。处理方法的格式是:void handler(const...
分类:
编程语言 时间:
2015-01-19 19:03:06
阅读次数:
154