练习12.10:
此调用正确,传递临时的拷贝实参给process函数,在函数体内部引用计数为2
练习12.11:
调用get函数会返回一个内置指针,指向智能指针管理的对象,直接使用get返回的指针初始化智能指针会创建一个独立的智能指针指向内存。调用process,此时有两个独立的智能指针指向相同的内存块,且引用计数都为1,调用process结束后,使用get创建的智能指针引用计数会为0,指向的内存会被释放,但原指针p仍然存在,变为空悬指针
练习12.12:
(a):合法,创建了一个智能指针的临时拷贝,此时内存的引用计数变为2
(b):不合法,创建智能指针必须显示初始化,不能进行隐式转换,此处想将普通指针隐式转换为智能指针,错误
(c):不合法,错误同上,不能使用隐式转换
(d):合法,使用普通指针创建的临时智能指针,调用结束后p指向的内存会被释放
练习12.13:
会发生错误,对get返回的指针不能进行delete,sp会变为空悬指针