Если ваш объект находится в области видимости внутри функции, тогда ваша правильная конструкция - вовсе не использовать указатель, а использовать автоматический объект, который должен быть создан следующим образом.
ExampleObject example("image.jpg");
Вы можете использовать указатель там, где вы находитесь, например, в конструкции if
в то время, когда условие else
не будет создавать объект, а затем вы захотите использовать объект позже.
В таком случае используйте объект автоматического указателя, предпочтительно, unique_ptr, если он доступен, boost::scoped_ptr
, если нет, но даже устаревший std :: auto_ptr лучше, чем необработанный. Например:
std::unique_ptr<ExampleObject> example;
if( usingAnExample )
{
example.reset( new ExampleObject("image.jpg") );
}
else
{
// do stuff
}
// I still need example here if it was created