9.6.2  类autoptr的成员及转换

9.6.2autoptr的成员及转换

1.成员

978-7-111-51399-5-Chapter09-100.jpg

要求get()!=0,返回值为函数get()返回的指针。

978-7-111-51399-5-Chapter09-101.jpg

返回值为函数get()返回的指针。

978-7-111-51399-5-Chapter09-102.jpg

函数返回this指针。

978-7-111-51399-5-Chapter09-103.jpg

返回值为get()函数的返回值,之后∗this指针即变成空指针。

978-7-111-51399-5-Chapter09-104.jpg

功能:如果get()函数的返回值不等于指针p,那么需要删除get()函数的返回值,相应的等效代码为:

978-7-111-51399-5-Chapter09-105.jpg

函数执行之后,指针∗this保存了指针p。

2.转换

978-7-111-51399-5-Chapter09-106.jpg

函数的执行效果:调用p.release(),其中p是r内保存的指针。

978-7-111-51399-5-Chapter09-107.jpg

函数返回值是类型为auto_ptr_ref变量,变量的值为∗this。

978-7-111-51399-5-Chapter09-108.jpg

函数的作用是调用release()函数。函数返回值是一个auto_ptr<Y>,其中包含release()函数返回的指针。

978-7-111-51399-5-Chapter09-109.jpg

函数的作用是调用reset(p.release()),p为r中包含的引用。函数返回值为指针this。