如果有课程:
class classA {
public:
int z = 5;
};
我理解RAII是在写classA Aobject
的时候,但如果我想声明一个全局指针,我该怎么办?
classA *Aobject;
int main()
{
Aobject = new classA; //not RAII
cout << Aobject->z << endl;
return 1;
}
答案 0 :(得分:4)
我认为你的意思是你要声明一个对象,但是你不想立即初始化它,也许是因为你还没有所需的所有参数来正确构造它。那是对的吗?使用智能指针。
#include <memory>
#include <iostream>
std::unique_ptr<classA> Aobject;
int main()
{
Aobject.reset(new classA);
cout << Aobject->z << endl;
return 1;
}