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

Как проверять и тестировать входные аргументы конструктора? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка скобок для указателя http://www.cyberforum.ru/cpp-beginners/thread1156245.html
Здраствуйте. Написал небольшой код, всё работает, но не знаю как при динамическом вызове можно было просто использовать a, a... вместо (*a), (*a) .... Вот сам код: #include <iostream> #include <cstdlib> using std::cin; using std::cout; using std::endl;
C++ В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию в массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию. Использовать сортировку пузырьком. #include<stdio.h> #include <conio.h> #include <stdlib.h> #include<time.h> struct student { char Name; int Old; int ycp; http://www.cyberforum.ru/cpp-beginners/thread1156240.html
Сведение к двум дифференциальным уравнениям, Рунге-Кутта-Мерсона C++
Здравствуйте. В общем имеется функция y = x(t) y''=g(sin\alpha - \eta cos\alpha) Ее нужно свести к двум дифференциальным уравнениям первого порядка и применить метод Рунге-Кутта-Мерсона. t0 <= t <= t1, h = 0.1 Так же дано x0, y(x0). В интернете нашел мало информации об этом методе, а на википедии не смог разобраться. Буду рад помощи, спасибо.
C++ Перевод из русской раскладки клавиатуры в латинскую
Зравствуйте! Столкнулся с такой проблемой: необходимо реализовать класс для считывания текста из файла, сохранения его в памяти и перевода из русской раскладки клавиатуры в латинскую (замена букв й->q, ц->w, у->e, к->r и т.д.) сохраненного текста. И на оборот, но наоборот сейчас не так важно. Подскажите пожалуйста, если можно блоком кода, как это реализовать? Я предполагаю, что нужно создать 2...
C++ Создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке http://www.cyberforum.ru/cpp-beginners/thread1156209.html
Друзья, подскажите, пожалуйста, в чем может быть ошибка? Задача такова: создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке Вот код: struct prodavec { char FIO; int ipr; //nomer pr-ca int kol_ves; int kol_shtuk; float time; //obchee vremya na obsluz.odnim pr-om vseh pokupatele
C++ Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, дате рождения Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, дате рождения. Предусмотреть добавление элементов в конец списка, поиск по дате рождения, удаление по фамилии. Предусмотреть удаление списка перед выходом из программы. Вот все что смог сделать. Надеюсь на вашу помощь #include <iostream> #include <conio.h> #include <stdio.h> #include... подробнее

Показать сообщение отдельно
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
24.04.2014, 16:27     Как проверять и тестировать входные аргументы конструктора?
Почему бы не запихать все в один try-catch?
C++
1
2
3
4
5
6
7
8
9
10
11
try
{
   SomeClass c1("cool"), c2("0"), c3("qwerty") /*...*/;
   //SomeClass c[15] = {};
}
catch(std::invalid_argument e)
{
   std::cout << "Error occured in the constructor of some of the 15 objects" << endl;
   std::cin.get();
   exit(true);
}
А вообще кидать исключения из конструктора не запрещено, а даже иногда необходимо, т.к. конструктор не может вернуть код ошибки и кроме как выкинуть исключение путей нет. Деструкторы будут вызваны для сформировавшихся объектов при выбрасывании исключения. Ну и как вариант, что бы не кидать исключения, можно выводить ошибку прямо в конструкторе объекта, если что то пошло не так, и сразу exit().
 
Текущее время: 06:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru