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