Форум программистов, компьютерный форум CyberForum.ru

Обработка неудачного вызова конструктора класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите сервис карт с API под C++ http://www.cyberforum.ru/cpp-beginners/thread1113827.html
Ищу сервис карт с API под C++. Чего-то неверотного не жду, если можно будет просто получить кратчайший путь (расстояние в км) по дорогам от одного объекта до другого, имея их адрес или координаты, пусть даже без отрисовки карты и размещения на ней объектов в самой программе, уже будеи просто супер. Нужно наличие карт Украины. Подскажите, пожалуйста, такой вариант. А если ещё подкинете хотя бы...
C++ Каким образом программа определяет эффективный угол? Ребят, объясните одну вещь: есть программа на С++,которая вычисляет при каком угле расстояние полета тела будет максимальным, и выводит эти значения.Вот участок кода который это делает: float d, max_d, max_a; max_d = 0; for (float a = 0; a < 90; a+=1) перебирает значение угла { d = dist(v,a); if (max_d < d) Почему программа записывает именно максимальное значение d, ведь условие требует... http://www.cyberforum.ru/cpp-beginners/thread1113805.html
Передача в функцию по ссылке или указателю C++
Гуру C++, как предпочтительнее делать?:) void f1(int &a) { a = 5; } void f2(int * a) {
Задача Создать массив структур, каждая из которых состоит из C++
Задача Создать массив структур, каждая из которых состоит из следующих элементов: факультет, курс, группа, фамилии студентов, экзаменационные оценки. Реализовать запросы, определив: 1)фамилии студентов, которые имеют две и больше двоек в сессию на заданном пользователем факультете и удалить их 2)факультет на котором на первом курсе наибольшее количество отличников. НЕ МОГУ СДЕЛАТЬ первое...
C++ Отлов нажатия клавиш http://www.cyberforum.ru/cpp-beginners/thread1113790.html
Доброго времени суток! Стоит задача при нажатии оперделенной клавиши выполнить действие. Код: #include <windows.h> #include <iostream> #include <tchar.h> #include <conio.h> using namespace std;
C++ Чтение бинарного кода из файла Необходимо прочитать бинарный код, синтаксически разделённый на байты (Например: 01000010 00011100 01111011) из файла. С библиотекой fstream знаком, больше интересует корректное прочтение, ибо в переменную "закидывается" неправильное значение. Например вместо требуемых 00011001 может вылезти 64888811000. Заранее спасибо. подробнее

Показать сообщение отдельно
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.03.2014, 06:54     Обработка неудачного вызова конструктора класса
Цитата Сообщение от DU Посмотреть сообщение
еще в таких случаях часто используют так называемое двух фазное
конструирование. это конструктор, который ничего не бросает,
и метод инициализации, который возвращает какой-нибудь флажок или ошибку.
Можно, конечно, но проблема понятная: такой класс предполагает определенный порядок вызова методов и между ними находится в каком-то непонятном состоянии.

Цитата Сообщение от eugrita Посмотреть сообщение
Мой опыт показывает, что если они возникают, программа кроме реакции по написанному обработчику, выдает еще стандартное системное сообщение - неприятно.
Чет фигня какая-то... Не верю я, что разработчики компиляторов настолько тупые, чтобы навязывать подобное поведение. Другое дело, если вы запускаете отладочную сборку, где могут быть свои обработчики исключений. Или если в среде настроены хуки на перехват всех бросаемых исключений. Тогда ок.
В релизной сборке не происходит ничего лишнего.

Если не нравится идея написать отдельную функцию, которая возвращает либо указатель на объект, либо nullptr. Можно завести отдельный класс GraphReader, который будет отвечать за чтение графа из файла. Аналогично JsonReader'у тут: http://jsoncpp.sourceforge.net/
 
Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru