Можно ли во время создания объекта, при сбое в конструкторе завершить его без создания объекта и оповестить об этом программу?
serialPort::serialPort(LPSTR serialName)
{
HANDLE serialDesc;
// COM openning
serialDesc = CreateFile(serialName, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
if (serialDesc == INVALID_HANDLE_VALUE)
{
// сделать что-то, что бы объект не создавался и оповестить программу
}
}
Мне в голову приходят только передача указателя на внешнюю структуру с последующей проверкой, или содержать дополнительную переменную в классе, которую так же придется проверять извне.
Еще прочитал про try-throw-catch
, но не могу найти явную информацию как он работает в конструкторе.
Вообще-то генерация исключения в конструкторе и означает, что объект не создан...
Само собой, все действия по очистке уже сделанного в конструкторе вы должны выполнить самостоятельно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
здраствуйте, есть список с элементов класса код класса:
Добрый вечерУ меня такой вопрос, недавно лазил в инете и наткнулся на такой код: return*this*Fraction(fra