Предположим, что у нас есть класс (назовем его classs
) конструктором по умолчанию, который может вызвать какое-то исключение. Мне нужно использовать объект этого класса в функции следующим образом:Исключение инициализации по умолчанию Исключение
try{
classs c;
} catch(bad_init& b){
//log
}
//if the class initialized succesfully
//do some with c
Но c
объявлен в блок определения области try
«s и, следовательно, не видна в области видимости функции. Как я могу это сделать?
Я не хочу обертывать тело всей функции, потому что есть какой-то код, бросающий другой вид исключения.
Я не думаю, что вы можете использовать ключевые слова как имена переменного/класса –
@EdHeal обновленных –
@ St.Antario ... объявляйте 'c' в качестве указателя перед блоком' try' и выделяйте его с помощью новой внутри 'try'. – sgarizvi