Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 08.04.2018
Сообщений: 60

Реализация трех конструкторов и деструктура для класса Date

29.06.2018, 22:34. Показов 1510. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Разработайте класс DATE, в котором хранится информация о дате (число, месяц и год). В классе должны быть реализованы три конструктора и деструктор, а также метод, позволяющий присваивать значения, вводимые с клавиатуры, полям класса и метод, который выводит эти значения на экран в виде: 05.01.2015г.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.06.2018, 22:34
Ответы с готовыми решениями:

Как динамически выделить память для конструкторов класса?
подскажите как динамически выделить память для конструкторов класса? class circle { double x,y,r; public: void...

Перегрузка оператора += для класса date
Вот код.Я просто не могу вкурить какую проверку воткнуть date & date::operator+=(date & da) { this->day += da.day; ...

Перегрузка оператора + для класса Date
Здравствуйте! Как правильно перегрузить оператор +(Date, int) для класса Date, чтобы дата увеличивалась на нужное количество дней? При этом...

17
0 / 0 / 1
Регистрация: 29.06.2018
Сообщений: 4
30.06.2018, 05:11
Лучший ответ Сообщение было отмечено KsEnHH как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//DATE.hpp
 
#ifndef DATE_HPP
#define DATE_HPP
 
class DATE {
  unsigned short day_;
  unsigned short month_;
  unsigned short year_; //0..65535
 
 public:
 
  DATE();
  DATE(unsigned short day, unsigned short month, unsigned short year);
  DATE(DATE const & other);
  ~DATE();
  void print();
  void set();
};
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//DATE.cpp
 
#include "DATE.hpp"
#include <iostream>
 
DATE::DATE()
        :day_{0}, month_{0}, year_{0} {}
 
DATE::DATE(unsigned short day, unsigned short month, unsigned short year)
        : day_{day}, month_{month}, year_{year} {}
 
DATE::DATE(DATE const & other)
        : day_{other.day_}, month_{other.month_}, year_{other.year_} {}
 
void DATE::print() {
  std::cout << day_ << "." << month_ << "." << year_ << std::endl;
}
 
void DATE::set() {
  std::cout << "\nSetting_DATE:\n";
  std::cout << "day: ";
  std::cin >> day_;
  std::cout << "month: ";
  std::cin >> month_;
  std::cout << "year: ";
  std::cin >> year_;
}
 
DATE::~DATE() {}
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
30.06.2018, 10:46
Spardoks, у меня возник вопрос
Цитата Сообщение от Spardoks Посмотреть сообщение
C++
1
2
3
unsigned short day_;
unsigned short month_;
unsigned short year_; //0..65535
а смысл писать знак "_" после? Его обычно в начале пишут что бы слово которое нужно находилось сверху
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
30.06.2018, 11:20
k0vpack, Чтобы не было конфликта имён между членом класса, например, day_ и аргументом конструктора day. Проще говоря отличались чтобы они
0
0 / 0 / 1
Регистрация: 29.06.2018
Сообщений: 4
01.07.2018, 15:03
Тут кому как удобнее.

Цитата Сообщение от k0vpack Посмотреть сообщение
находилось сверху
А сверху чего?
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
01.07.2018, 15:40
Spardoks, когда в IDEшках пишеш к примеру названия уже определенной переменной то выскакивает список которой подбирает похожие слова
0
0 / 0 / 1
Регистрация: 08.04.2018
Сообщений: 60
03.07.2018, 21:33  [ТС]
Почему функция main отсутствует? Без этой функции программа ругает.
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
03.07.2018, 21:37
KsEnHH, я вижу ты слишком далёк от С++, ты хоть на пары то ходил?
0
0 / 0 / 1
Регистрация: 08.04.2018
Сообщений: 60
03.07.2018, 21:40  [ТС]
Мы не изучали эту тему углублено, да и я с C++ не хорошо дружу.
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
03.07.2018, 21:45
KsEnHH,
Цитата Сообщение от KsEnHH Посмотреть сообщение
углублено
углубленно? Типо ООП? Типо библиотек?
Открыв любой учебник, и первое слово в нем будет, что без main ничего вообще работать не будет, то есть начало программы в main'ne, конец программы в main'ne, а все что в середине он о болтается по коду и библиотеках

Добавлено через 58 секунд
KsEnHH, это как идти в магазин лёжа на диване, как пить лить воду не имея дна, как смотреть телевизор в 1700 году
0
0 / 0 / 1
Регистрация: 08.04.2018
Сообщений: 60
03.07.2018, 21:52  [ТС]
Вы мне написали код без main. Я это у вас спрашиваю. Я знаю что это такое.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
03.07.2018, 21:58
KsEnHH, тебе намекают, что нужно быть совсем нубом в С++, чтобы не уметь самостоятельно писать функцию main для проверки одного простенького класса.
0
0 / 0 / 1
Регистрация: 08.04.2018
Сообщений: 60
03.07.2018, 22:06  [ТС]
Ок. Извиняюсь, что я лишний вопрос поднял. Оставлю тут, вдруг кому-нибудь, тупому как я, понадобится.

C++
1
2
3
4
5
6
int main()
{
DATE date;
date.set();
date.print();
}
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
04.07.2018, 00:50
Цитата Сообщение от k0vpack Посмотреть сообщение
а смысл писать знак "_" после? Его обычно в начале пишут
в начале его пишут только балбесы.
грамотные любители подчеркиваний - всегда в конце.

потому что можно налететь на UB
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.07.2018, 06:07
Цитата Сообщение от hoggy Посмотреть сообщение
потому что можно налететь на UB
hoggy, даже когда переменная - это data member в приватной секции класса?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.07.2018, 06:19
hoggy, да, действительно, неприятная ситуация. Не UB, но уже нехорошо.

Вот что бывает, когда начинаешь имена переменных с подчёркиваний

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// These macros are defined by all GNU compilers that use the C preprocessor: C, C++,
// Objective-C and Fortran.
 
// __VERSION__
 
// This macro expands to a string constant which describes the version of the compiler in use.
// You should not rely on its contents having any particular form, but it can be counted on to
// contain at least the release number.
 
#include <iostream>
 
class Test
{
    int __VERSION__;
 
public:
    Test()
        : __VERSION__(666)
    {}
 
    int get_version()
    {
        return __VERSION__;
    }
};
 
int main()
{
    Test t;
    std::cout << t.get_version();
}


Кто не в курсе, вот что делает данный макрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// These macros are defined by all GNU compilers that use the C preprocessor: C, C++,
// Objective-C and Fortran.
 
// __VERSION__
 
// This macro expands to a string constant which describes the version of the compiler in use.
// You should not rely on its contents having any particular form, but it can be counted on to
// contain at least the release number.
 
#include <iostream>
 
 
int main()
{
    std::cout << "My GCC version: " << __VERSION__ << "\n\n";
}

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
04.07.2018, 09:11
Цитата Сообщение от gru74ik Посмотреть сообщение
Не UB, но уже нехорошо.
любые идентификаторы,
которые начинаются с подчеркивания
и потом заглавная буковка - зарегистрированны для нужд языка
для любых кейсов использования.

здесь UB без вариантов.
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.07.2018, 09:45
Цитата Сообщение от hoggy Посмотреть сообщение
здесь UB без вариантов.
hoggy, здесь да. Ты прав.

hoggy, а вообще, стандарт говорит, что
нельзя использовать имена начинающиеся с
• двойного подчёркивания (вне зависимости от области видимости)
• одинарного подчёркивания и заглавной буквы (вне зависимости от области видимости)
• подчёркивания (в глобальном скоупе)
Из стандарта 2011 года:
Цитата Сообщение от C++ STANDARD ISO IEC 14882-2011
17.6.4.3.2 Global names
Certain sets of names and function signatures are always reserved to the implementation:
— Each name that contains a double underscore __ or begins with an underscore followed by an uppercase
letter (2.12) is reserved to the implementation for any use.
— Each name that begins with an underscore is reserved to the implementation for use as a name in the
global namespace.
Так что, если в приватной области класса объявлено поле навроде _day или _month, то по стандарту это не UB, потому что после подчёркивания идёт буква в нижнем регистре и область видимости не глобальная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.07.2018, 09:45
Помогаю со студенческими работами здесь

Реализация конструкторов и деструктора
Дорогие форумчане! В своем обучение дошел до создания класса. В этом примере должны были заработать конструкторы и деструктор: ...

Помогите!!! Осуществить перегрузку конструкторов для класса
ConsoleApplication Реальзовать класс Осуществить перегрузку конструкторов для класса Особым методом реализовать метод run(),...

Конструктор класса. Перегрузка конструкторов класса
Подскажите пожалуйста.. как это сделать? Вот задание: Модифицировать данную прогу.. Модифицирование сводится к следующему:...

Создание конструкторов для класса "Матрица"
Здравствуйте уважаемые форумчане) Вообщем суть дела вот в чём: Разработать класс для представления объекта матрица, состоящая из...

Перегрузка конструкторов класса
Помогите, необходимо реализовать 1-2 перегруженных конструкторов класса. Желательно перегрузить класс &quot;Program&quot;. Вот сам код,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru