RAII如何与指针一起使用?

时间:2012-12-08 17:16:17

标签: c++ raii

如果有课程:

class classA {
public:
    int z = 5;
};

我理解RAII是在写classA Aobject的时候,但如果我想声明一个全局指针,我该怎么办?

classA *Aobject;
int main()
{
    Aobject = new classA; //not RAII

    cout << Aobject->z << endl;

    return 1;
}

1 个答案:

答案 0 :(得分:4)

我认为你的意思是你要声明一个对象,但是你不想立即初始化它,也许是因为你还没有所需的所有参数来正确构造它。那是对的吗?使用智能指针。

#include <memory>
#include <iostream>

std::unique_ptr<classA> Aobject;
int main()
{
    Aobject.reset(new classA);

    cout << Aobject->z << endl;

    return 1;
}