我试着写这门课
#include <memory>
class ContainerUnique
{
public:
ContainerUnique(void);
~ContainerUnique(void);
private:
std::unique_ptr<UniqueElement> u;
};
其中 UniqueElement 是在别处定义的 POD 类。我现在像这样定义构造函数体:
ContainerUnique::ContainerUnique(void)
{
auto tmp = new UniqueElement(1);
this->u(tmp); // u is a unique_ptr<UniqueElement>. Should this call compile?
}
它无一例外地遵守。运行程序我发现在构造函数ContainerUnique
被调用后,u
包含一个空指针。
这是预期的行为吗?我实际调用的是什么 unique_ptr 方法?