// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <boost\shared_ptr.hpp>
using namespace std;
class haitao{
private :
int agee;
public:
int getAge(){
return agee;
}
haitao(int mm):agee(mm){
cout << "构造函数被调用" << endl;
}
~haitao(){
cout << "析构函数被调用" << endl;
}
};
void tianjia(){
haitao *ttt=new haitao(35);
cout << ttt->getAge() << endl;//内存泄漏
cout << "----------------" << endl;
shared_ptr<haitao> sp(new haitao(35));
shared_ptr<haitao> rrr = sp;
cout << sp.use_count() << " " << rrr.use_count()<< endl; //使用boost的shared_ptr作用域结束后自动释放内存
shared_ptr<haitao> bbb = rrr;
cout << sp->getAge() <<" "<<bbb.use_count()<<" "<<rrr.use_count()<<" "<<sp.use_count()<< endl; //使用boost的shared_ptr作用域结束后自动释放内存
}
int _tmain(int argc, _TCHAR* argv[])
{
tianjia();
getchar();
return 0;
}
上面代码编译后运行结果:
注意要将boost库引入项目中来
FR:海涛高软(hunk Xu) QQ技术交流群:386476712