1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
|
||||||
1 | ||||||
Класс дата22.08.2011, 12:41. Показов 44206. Ответов 28
Метки нет (Все метки)
Создать класс типа - дата с полями: день (1-31), месяц (1-12), год(целое число).Класс имеет конструктор:с параметрами, без параметров,копирования; деструктор; функции-члены получения дня,месяца и года,а также две функции-члены печати по шаблону: "5 января 1997 года" и "05.01.1997"; функции-члены должны проверять корректность задаваемых параметров.
Помогите пожалуйста с определением класса! Вот что у меня:
0
|
22.08.2011, 12:41 | |
Ответы с готовыми решениями:
28
Класс Дата Дата класс Класс Дата Класс Дата Класс Дата |
1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
|
|
22.08.2011, 13:44 [ТС] | 3 |
Спасибо конечно,но ничем не помогло
0
|
22.08.2011, 14:07 | 4 |
Из всего этого там есть конструктор с параметрами и вывод даты в формате "5 января 1997".
Для того, чтобы это реализовать, нужно проверить - является ли введеный год високосным, а эта ф-ция там (по ссылке) тоже есть. Думаю стоит внимательно посмотреть на то, что советуют + попробовать что-то сделать самостоятельно. Твоя задача гораздо проще, чем та, что по ссылке
0
|
1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
|
|
22.08.2011, 15:59 [ТС] | 5 |
пробую,спасибо за все))
0
|
23.08.2011, 10:52 | 6 | |||||
Я начал, попробуйте доделать. Если возникнут трудности, постите свой проблемный код и описывайте проблемы. Но обязательно с Вашей стороны должен быть код.
2
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|||||||||||
23.08.2011, 15:26 | 7 | ||||||||||
Столкнулся с этой же задачей, поясните пожалуйста данные куски кода:
0
|
23.08.2011, 15:36 | 8 |
TBIKC, в первом куске описаны два конструктора: с параметрами и копирования. Чтобы три раза не писать один и тот же код сделана функция setDate. Во втором куске бросается исключение в случае если дата не корректна.
0
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|||||||||||
23.08.2011, 15:52 | 9 | ||||||||||
Из php знаю обработка исключений происходит так:
0
|
23.08.2011, 15:58 | 10 |
Для d1 вызывается конструктор с параметрами, для d2 - конструктор копирования.
После выполнения на экран выведено будет две даты: 5/08/1989 и 6/08/1989. Обратите внимание, что у объекта d2 был вызван метод setDay. А первоначально значения скопированы из объекта d1. Если просто вывести, то ошибку можно заметить только на консоли (ну или куда stdout будет перенаправлен) - это плохо, так как присутствует зависимость от интерфейса представления данных. А что если данный класс будет использоваться с GUI? Исключение же можно поймать уровнем выше по иерархии вызовов. В этом коде плохо то, что исключение может быть брошено из конструктора. Это действительно плохо.
2
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|
23.08.2011, 16:01 | 11 |
То есть без конструктора копирования Написать Date d2 = d1; было бы нельзя, и пришлось писать
Date d1(6, 8, 1989); я прав ?
0
|
23.08.2011, 16:04 | 12 |
В целом Вы правы, но стоит отметить один момент.
В данном случае конструктор копирования мог быть сгенерирован компилятором автоматически, такой конструктор просто скопировал бы побитово содержимое одного объекта в другой. Собственный конструктор копирования пишется для осуществления большего контроля над процессом создания объекта, например, проверка входных данных функцией isValidDate.
1
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|
23.08.2011, 16:11 | 13 |
Посмотрел и в основном же this, указатели,исключения ещё только буду проходить в следующих главах, а ведь пока только прошел
3. Введение в классы и объекты 4. Управляющие конструкции ( if else ) часть 1 Даже не знаю, хорошо ли это, что я вижу и копирую некоторые кусочки кода, но не совсем понимаю зачем они и что это )))
0
|
Модератор
12459 / 7483 / 1754
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
24.08.2011, 00:55 | 15 |
Конструктор копирования по-моему здесь всё-таки не нужен потому, что коль скоро удалось создать копируемый объект, значит данные в нём корректные, иначе было бы брошено исключение. А вот чем плохо вызывать исключения в конструкторе и как по-другому бороться с некорректными параметрами при создании объекта - было бы интересно узнать...
0
|
1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
|
||||||
03.09.2011, 16:15 [ТС] | 17 | |||||
0
|
Заблокирован
|
||||||
04.09.2011, 11:55 | 18 | |||||
- Предлагаю свой класс data, в классе предусмотрена проверка введенных параметров + печать по шаблону
1
|
Заблокирован
|
||||||
04.09.2011, 17:28 | 20 | |||||
- Да понял баг, нужно модернизировать функцию setYear(int iYear) и ввести ветвь с проверкой условия 28 < day при не високосном годе
0
|
04.09.2011, 17:28 | |
04.09.2011, 17:28 | |
Помогаю со студенческими работами здесь
20
класс Дата Создать класс Дата Создать класс Дата Разработать класс Дата Класс Date (Дата) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |