0

如果有课:

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

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

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

    cout << Aobject->z << endl;

    return 1;
}
4

1 回答 1

4

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

#include <memory>
#include <iostream>

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

    cout << Aobject->z << endl;

    return 1;
}
于 2012-12-08T17:18:19.760 回答