【转】浅析auto_ptr(11)

时间:2025-07-14

智能指针,auto_prt的基本用法,及其示例

}

private:

int __age;

char *__name;

};

int main(int argc, char *argv[])

{

try

{

auto_ptr<Cat> mycatAptr(new Cat("Bother", 2));

//此时au_mycat_a便俘获了指向新建Cat对象的指针

//可以使用au_mycat_a来对对象进行操作了,比如“叫”

mycatAptr->Beep();

auto_ptr<Cat> mycatBptr;

mycatBptr = mycatAptr;

//此时,mycatAptr把控制权交给了mycatBptr

mycatBptr->Beep();

//此时如果再次调用au_mycat_a->Beep()就会产生错误。

mycatAptr.reset(mycatBptr.release());

//mycatAptr重启掌控对象,mycatBptr转让了对对象的控制

mycatAptr->Beep();

//此时如果mycatBptr->Beep()将会出错。

Cat *tmp = mycatAptr.release();

//mycatAptr也拒绝了对对象的控制,release()返回指向被放弃的对象的指针(对象并没有被删除)

tmp->Beep();

//此时mycatAptr已经不能在调用Beep()函数了。

}

catch (CatException &ce)

{

cout << ce.what() << endl;

}

return 0;

}

这是在mingw32-3.4.4下找到的源文件。

【转】浅析auto_ptr(11).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219