![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#71 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Немного отвлечёмся от класса Time
Ещё такое упражнение. К примеру, у меня есть класс "А", объект которого может хранить в себе целое число: Код:
Output: Цитата:
Код:
Последний раз редактировалось 8Observer8; 16.10.2014 в 15:59. |
|
![]() |
![]() |
![]() |
#72 |
Форумчанин
Регистрация: 26.09.2014
Сообщений: 176
|
![]()
У меня как раз тема Шаблоны и исключения)
Код:
Код:
Код:
Последний раз редактировалось Stilet; 18.10.2014 в 11:29. |
![]() |
![]() |
![]() |
#73 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]() Цитата:
Удачное название для такого класса - это Point (переводится, как "точка"). У точки есть координаты: x, y, z Вот как бы я хотел вывести координаты трёх точек на экран: Код:
|
|
![]() |
![]() |
![]() |
#74 |
Форумчанин
Регистрация: 26.09.2014
Сообщений: 176
|
![]()
Спасибо! Исправил:
Код:
Последний раз редактировалось igoreshka3333; 16.10.2014 в 19:22. |
![]() |
![]() |
![]() |
#75 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Отлично!
Теперь вернёмся к классу Time. У вас уже есть система контроля ошибок. После нескольких упражнений я напишу о её главном недостатке - это дублирование кода, то есть строки "Wrong format!!!" Упражнение. Сделайте систему контроля ошибок основанную на исключениях. Метод должен выбрасывать исключение класса std: ![]() Пример того, как это должно выглядеть. Условие: калькулятор умеет делить вещественные числа, которые находятся в диапазоне (-100.0, 100.0). И осуществляет проверку деления на ноль. Если пользователь класса совершит ошибку, то программа об это сообщит: Код:
![]() (это конечно, можно сделать с помощью "Find And Replace", но не всегда это получится, и нужно будет вручную менять). Дублирование нужно избегать. Но есть продолжения, к котором приходят исключения - это классы исключений, и они решают проблему дублирования. О классах исключений - позже Код:
![]() Последний раз редактировалось Stilet; 18.10.2014 в 11:29. |
![]() |
![]() |
![]() |
#76 |
Форумчанин
Регистрация: 26.09.2014
Сообщений: 176
|
![]()
Вроде бы все ясно - попробую! Но решил протестировать новую для себя функцию to_string()
Код:
|
![]() |
![]() |
![]() |
#77 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
С++ он тоже разный. У вас, скорее всего, С++98. А это из С++11. Совсем недавно ещё появился C++14
Если вы пишите в Qt Creator, то в профайле надо добавить: Код:
Последний раз редактировалось 8Observer8; 17.10.2014 в 17:39. |
![]() |
![]() |
![]() |
#78 | |
Форумчанин
Регистрация: 26.09.2014
Сообщений: 176
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#79 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Когда вы знаете, что есть функции, которые переводят числа в строки и обратно, то проще всего вспомнить хотя бы одну, набрать в гугле и выйти на подобную страницу с примером: http://www.cplusplus.com/reference/string/stoi/
А там уже на панели слева найти нужную. Думаю, так все делают. Если не помните название, то набирайте: как перевести число и т.д. Тогда в примерах можно найти нужное название и уже потом перейти на сайт www.cplusplus.com. Там самая лучшая справка по всем классам C++ Заметьте, что когда std::stoi переводит из строки в целое и не может этого сделать (если пользователь ввёл слишком длинное число или буквы вместо числа), то эта функция выбрасывает исключение типов, соответственно, std::out_of_range и std::invalid_argument Они наследуются от std::logic_error, как видно из диаграммы наследования: http://www.cplusplus.com/reference/s...t/logic_error/ Сохраните себе пример, как переводить целые (вещественные) в строки и обратно: Код:
Примечание. Можете здесь её скачать: https://yadi.sk/d/VCvsky11c6wtP "Chapter 14. Using String and Regular Expressions" -> "Dynamic Strings" -> "The C++ string Class" ![]() ![]() Последний раз редактировалось 8Observer8; 18.10.2014 в 11:22. |
![]() |
![]() |
![]() |
#80 | |
Форумчанин
Регистрация: 26.09.2014
Сообщений: 176
|
![]()
Спасибо) Весьма полезно!
А что это за метод - в гугле не нашел (может и искал плохо)? Цитата:
Последний раз редактировалось igoreshka3333; 17.10.2014 в 20:06. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
описать класс в с# | volkodinocka | Помощь студентам | 0 | 09.11.2013 22:05 |
Описать класс С# | NeoX_2011 | Помощь студентам | 1 | 19.03.2012 00:10 |
C# исправление ошибки. Описать класс, реализующий шестнадцатеричный счетчик | PROkaZZZniK | Помощь студентам | 7 | 09.02.2012 16:29 |
Описать класс-родитель и класс-потомок. Delphi 7 | Andrew_M | Помощь студентам | 0 | 15.01.2011 14:42 |
Описать класс. | Telec | Общие вопросы C/C++ | 1 | 30.04.2010 18:43 |