А можно ли бросать исключения из конструктора?
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
И будет ли в этом случае объект корректно создан?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Можно и память будет освобождена автоматически, но деструкторы не до конца сконструированных подобъектов не будут вызваны включая деструктор того объекта где собственно и произошло исключение в конструкторе.
2B OR NOT(2B) = FF
А обращаться к нему имеет смысл?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
К объекту. Есть класс, в нём конструктор, некоторые члены класса сами являются объектами. Исключение брошено в конструкторе после задания значений всех членов. Часть членов специально предназначена для подробной информации об ошибке, а один член - о факте ошибки. Имеет ли смысл после исключения обращаться к функциям-членам и операторам-членам, инкапсулирующим доступ к членам с информацией об ошибках?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
То есть? И как тогда перед обращении к нему проверить валидность? Или всё таки в конструкторе нельзя?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
То есть?. Это написано на этапе разработки, а исключение брошено при исполнении.
Код: Выделить всё
A a(x);
if ((bool)a)
{
}
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.