[an error occurred while processing this directive]
Ответ: Возможное решение - статический конструирующий метод.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено Oldring 15 июля 2002 г. 18:44
В ответ на: Ответ: отправлено Mik 15 июля 2002 г. 14:43

Видимо, речь идет про конструирование объектов по new. Тогда можно сделать примерно так:

claSS A {
A() {}

public:
static A* CreateObject( bool doCreate )
{
if( doCreate )
return new A;
else
return 0;
}
};

Это в том случае, если проверка возможности создания объекта достаточно дорога, чтобы делать её дважды. Иначе лучше написать отдельный метод проверки возможности создания объекта и явно его вызывать перед созданием объекта - будет понятнее, что происходит. А конструктор должен работать всегда, за исключением явно аварийных случаев - например, невозможности открыть требуемый файл. В последнем случае ннужно кидать исключение.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru