Если есть класс:
class classA {
public:
int z = 5;
};
Я понимаю RAII, когда я пишу classA Aobject
но что мне делать, если я хочу объявить глобальный указатель?
classA *Aobject;
int main()
{
Aobject = new classA; //not RAII
cout << Aobject->z << endl;
return 1;
}
Я предполагаю, что вы имеете в виду, что вы хотите объявить объект, но вы не хотите сразу его инициализировать, возможно, потому что у вас нет всех параметров, необходимых для его правильного построения. Это верно? Используйте умный указатель.
#include <memory>
#include <iostream>
std::unique_ptr<classA> Aobject;
int main()
{
Aobject.reset(new classA);
cout << Aobject->z << endl;
return 1;
}
Других решений пока нет …