智能指针的问题!
创建智能指针的类来实现对象的共享,但是我觉得智能指针的完全可以用静态变量来实现啊!
代码:
#include <iostream>using namespace std;class SmartPoint{ friend class ShareClass; int *ip; size_t use; SmartPoint(int *p):ip(p),use(1){ } ~SmartPoint(){ delete ip; }};class ShareClass{ public : ShareClass(int *p):sp(new SmartPoint(p)){ } ShareClass(const ShareClass&sc):sp(sc.sp){ ++(sp->use); } ShareClass &operator=(const ShareClass &sc); ~ShareClass(){ if(sp->use==0){ delete sp; } } private: SmartPoint *sp;};