Re[2]: Вернуть NULL в конструкторе
От: Centaur Россия  
Дата: 04.04.06 09:25
Оценка:
Здравствуйте, ois, Вы писали:

AS>>Есть какой-то класс. В конструкторе этого класса я пытаюсь соединиться с БД. Если соединение с БД не установлено, то дальнейшая работа класса невозможна. Поэтому: как мне при создании экземпляра класса вернуть NULL? Я так понял, что придется кидать исключение, но тогда его придется отлавлявать в основной программе при создании объекта. Есть ли какой-то другой вариант решения этого?


ois>Раз в задаче конкретно указан NULL, значит решение чисто кодовое

ois>и я не буду рассматривать возможные проектные решения для описанной
ois>ситуации.
ois>NULL может относиться только к динамическим объектам.
ois>Следовательно, нужно переопределить operator new

Конструктор начинает выполняться строго после того, как отработал operator new. Чтобы вернуть NULL в случае, когда инициализация объекта невозможна, operator new должен обладать даром ясновидения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.