Я не совсем уверен, что вы имеете в виду, когда спрашиваете о полезности .
Если вам нужен только один объект, чтобы существовать в течение очень короткого времени, но вы все еще можете удерживать эти данные, вы можете использовать std :: shared_ptr , чтобы использовать интеллектуальные указатели для динамического выделения памяти для объекты в куче. К объектам очень быстро получить доступ, и их можно легко использовать тривиально. Вы можете сделать это с необработанными указателями, но умные указатели просто безопаснее, так как вы никогда не получите утечек памяти, если забудете удалить необработанный указатель:
std::shared_ptr<Student> stu_ptr;
if (a == 5)
stu_ptr = (new (Student(a)));
stu_ptr->someClassFunction();
stu_ptr все еще существует после оператора if. Если вы хотите выполнить несколько проверок / условий, вы можете продолжать переназначать этот stu_ptr или, в силу характера общих указателей, вы можете создавать новые общие указатели для того же объекта Student для выполнения других тривиальных вычислений / функций.