首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为何不能使用 auto_ptr ?该怎么解决

2012-01-14 
为何不能使用 auto_ptr ?/*方案1用的是auto_ptr,为什么窗口闪一下就没有了?请高手指点!#includeafxwin.h

为何不能使用 auto_ptr ?
/*   方案1   用的是auto_ptr   ,为什么窗口闪一下就没有了?   请高手指点!
#include   <afxwin.h>
#include   <memory>

class   CMyFrameWnd   :   public   CFrameWnd
{
public:
CMyFrameWnd(void)   {}
};

class   CMyWinApp   :   public   CWinApp
{
public:
BOOL   InitInstance(void);
};

//#define   USE_AUTO_PTR     //   去掉此处注释,则运行方案1,否则运行方案2

#ifdef   USE_AUTO_PTR     //   方案1,   使用auto_prt
BOOL   CMyWinApp::InitInstance(void)
{
std::auto_ptr <CMyFrameWnd>   pFrame(new   CMyFrameWnd);
pFrame-> Create(0,   _T( "热烈欢迎! "));
pFrame-> ShowWindow(1);
pFrame-> UpdateWindow();
this-> m_pMainWnd   =   pFrame.get();
return   TRUE;
}
#else     //   方案2,   不使用auto_ptr
BOOL   CMyWinApp::InitInstance(void)
{
CMyFrameWnd   *pFrame   =   new   CMyFrameWnd;
pFrame-> Create(0,   _T( "热烈欢迎! "));
pFrame-> ShowWindow(1);
pFrame-> UpdateWindow();
this-> m_pMainWnd   =   pFrame;
return   TRUE;
}
#endif

CMyWinApp   myApp;

[解决办法]
pFrame自动释放了。

热点排行