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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
#1

Перегрузка операторов - C++

11.03.2014, 12:00. Просмотров 891. Ответов 22
Метки нет (Все метки)

Реализуйте класс CTime , моделирующий время суток ( количество часов , минут и секунд).
Каркас класса :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/ / Моделирует время суток , задаваемой количеством часов ( 0-23 ) ,
/ / Минут ( 0-59 ) и секунд ( 0-59 )
class CTime {
public :
/ / Инициализирует время заданным количеством часов , минут и секунд
CTime ( unsigned hours , unsigned minutes , unsigned seconds = 0);
/ / Инициализирует время количеством секунд после полуночи
CTime ( unsigned timeStamp = 0);
/ / Возвращает количество часов
unsigned GetHours ();
/ / Возвращает количество минут
unsigned GetMinutes ();
/ / Возвращает количество секунд
unsigned GetSeconds ();
/ / Возвращает информацию о корректности времени.
/ / Например , после вызова конструктора CTime time ( 99,32,83 ) ;
/ / Метод time.IsValid ( ) должен возвращать false
bool IsValid ();
} ;
Реализуйте конструкторы и функции-члены данного класса , а также оператор *=
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 12:00     Перегрузка операторов
Посмотрите здесь:

Перегрузка операторов -> <- - C++
Здравствуйте в столь позднее время.. Какова особеность перегрузки операторов -&gt; и . ? Что возвращают ? Если можно ссылки на...

Перегрузка операторов - C++
Здравствуйте. Помогите пожалуйста. Может кто то помочь разобраться с перегрузкой операторов. Мне бы простенький рабочий пример не помешал...

Перегрузка операторов - C++
Мне нужно определить тип name_and_adress. Потом перегрузить для него операторы &lt;&lt; и &gt;&gt; и скопировать поток объектов name_and_adress. У...

перегрузка операторов - C++
на примере класса Line не получается правильно и без ошибок перегрузить следующие операторы ==, &lt;, !=, &lt;&lt;. с = и вроде справился, с...

Перегрузка операторов - C++
Никак не возьму в толк, почему оно не работает! // CG5.cpp : Defines the entry point for the console application. // #include...

Перегрузка операторов - C++
Доброго времени суток! Столкнулся с такой проблемой, перегрузка операторов. Имею работающий код, но не смог сделать по своему заданию. ...

C++ перегрузка операторов - C++
люди такая ситуация кто может в краце объясните перегрузку операторов мне например надо перегрузить оператор умножения что бы умножить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1788 / 1163 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
11.03.2014, 12:06     Перегрузка операторов #2
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
Реализуйте класс CTime , моделирующий время суток ( количество часов , минут и секунд).
Реализуйте конструкторы и функции-члены данного класса , а также оператор *=
Временами, заходя на форум, у меня складывается впечатления, что я сижу на экзамене и от меня что-то требуют.
Tulosba
11.03.2014, 12:18
  #3

Не по теме:

Цитата Сообщение от Ilot Посмотреть сообщение
Временами
Каждый раз, собственно.

Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 12:20  [ТС]     Перегрузка операторов #4
Мне просто нужна помощь
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16688 / 6614 / 431
Регистрация: 12.06.2012
Сообщений: 19,873
Завершенные тесты: 1
11.03.2014, 12:27     Перегрузка операторов #5
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
Мне просто нужна помощь
И поэтому вы создали клона?
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2014, 12:28     Перегрузка операторов #6
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
Мне просто нужна помощь
В чем конкретно у Вас затруднение? Интерфейс класса дан, пишите реализацию.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 12:38     Перегрузка операторов #7
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
а также оператор *=
Так туплю похоже, но что он с этим классом делать должен? Умножать на int, чтобы время увеличивалось?
Цитата Сообщение от KOPOJI Посмотреть сообщение
И поэтому вы создали клона?
Не просто группы разные, а список заданий один))))
KOPOJI
11.03.2014, 12:47
  #8

Не по теме:

и по счастливому стечению обстоятельств обоих зовут Ярослав, у обоих один IP-шник и одно задание.. Какое трагическое совпадение...

Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2014, 12:49     Перегрузка операторов #9

Не по теме:

Цитата Сообщение от mustimur Посмотреть сообщение
Не просто группы разные, а список заданий один))))
Два Ярослава в одной группе? Можно предположить конечно. Но наверное модератору виднее по ip



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
Ярослав, у обоих один IP-шник и одно задание..
чуть опередили меня В одном классе сидят. Близнецы: Ярослав I, Ярослав II.

Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 14:54  [ТС]     Перегрузка операторов #10
это мой одногрупник
Ilot
11.03.2014, 14:57
  #11

Не по теме:

Цитата Сообщение от Yaroslav1 Посмотреть сообщение
это мой одногрупник
Скоро выяснится, что вы еще живете в одной комнате в общежитии, сидите за одним столом и ждете кому из вас быстрее ответят.

YarikZinchenko
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 6
11.03.2014, 16:47     Перегрузка операторов #12
Ну если же я клон то я вам объясню в каких случаях айпиха может быть одинакова, и так Внешний ip-адрес может быть одинаковым. То есть ip-адреса прописаны разумеется разные, а внешний один так провайдер сделал.Или если же мы однокурсники и сидим в одной аудитории на одной же паре то естественно компы наши подключены в локальную сеть, а так же в интернете часто используется 1 айпи-адрес для нескольких пользователей (даже для нескольких десятков)
KOPOJI
11.03.2014, 16:50
  #13

Не по теме:

Спасибо большое, теперь буду знать!

Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2014, 16:51     Перегрузка операторов #14
YarikZinchenko, спасибо за краткий курс построения сетей. По теме есть что?
Цитата Сообщение от Tulosba Посмотреть сообщение
В чем конкретно у Вас затруднение? Интерфейс класса дан, пишите реализацию.
Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 18:00  [ТС]     Перегрузка операторов #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
 
class CTime {
    unsigned s;
public:
CTime(unsigned hours, unsigned minutes, unsigned seconds = 0);
{
  s=(hours*60+minute)*60+second;
}
CTime(unsigned timeStamp = 0){ s=timeStamp;}
unsigned GetHours(){return s/3600;}
unsigned GetMinutes(){return (s/60/)%60;}
unsigned GetSeconds(){return s%60;}
bool IsValid(){return true;}
};
int main(){
    Ctime t(0,1,12);
    cout << t.GetHours() << ':' << t.GetMinutes() << t.GetSecond() <<endl;
return 0;
}
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 18:23     Перегрузка операторов #16
Уже лучше, пара ошибок, но нет оператора перегрузки и не правильно реализована проверка
C++
1
 bool IsValid(){return true;}
а так что-то уже похожее на код теперь задавай вопросы что не выходит.
Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 18:38  [ТС]     Перегрузка операторов #17
непонятно как реализовать оператор
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 18:41     Перегрузка операторов #18
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В первом приближении:
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
32
33
34
35
36
37
38
39
#include<iostream>
using namespace std;
 
class CTime {
private: 
    unsigned s;
    bool b;
public:
CTime(unsigned hours, unsigned minutes, unsigned seconds = 0)
{
    (minutes>60 || seconds>60)? (s=0,b=false):(s=(hours*60+minutes)*60+seconds, b=true);
}
CTime(unsigned timeStamp = 0){ s=timeStamp;}
unsigned GetHours(){return s/3600;}
unsigned GetMinutes(){return (s/60)%60;}
unsigned GetSeconds(){return s%60;}
bool IsValid(){return b;}
CTime operator  *= (const unsigned i) 
{
    s*=i;
    CTime Ct(s);
    return Ct;
}
};
 
int main()
{
    CTime t(0,1,12);
    if (t.IsValid())
    {
        cout << t.GetHours() << ':' << t.GetMinutes() <<':' << t.GetSeconds() <<endl;
        t*=5;
        cout << t.GetHours() << ':' << t.GetMinutes() <<':' << t.GetSeconds() <<endl;
    }
    else
        cout <<"error enter"<<endl;
    getchar(); 
    return 0;
}
SatanaXIII
Супер-модератор
Эксперт С++
5591 / 2625 / 239
Регистрация: 01.11.2011
Сообщений: 6,455
Завершенные тесты: 1
11.03.2014, 18:47     Перегрузка операторов #19
Цитата Сообщение от mustimur Посмотреть сообщение
не правильно реализована проверка
А мне нравится ход мыслей:
C++
1
2
3
4
Ctime t(0,1,12);
 
if( t.IsValid() )
  {
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 18:54     Перегрузка операторов
Еще ссылки по теме:

Перегрузка операторов - C++
Решите пожалуйсто задачу: Разработайте программу, в которой реализована перегрузка оператора «^». Оператор «^» должен возводить...

Перегрузка операторов - C++
Вот задание b) Создать класс Set – множество целых чисел, используя динамическую память. Определить операторы работы с множествами: &quot;+&quot; –...

Перегрузка операторов - C++
Добрый вечер. Не подскажите, в чём дело? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; struct programTime { programTime() { ...

Перегрузка операторов - C++
Создайте класс Fraction (обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби...

Перегрузка операторов с++ - C++
Доброго времени суток!Вот у меня перегрузка оператора +.Задание сделапть пергрузку так чтобы к строке можно было добавить символ и к...


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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 18:54     Перегрузка операторов #20
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А мне нравится ход мыслей:
первое что на ум пришло после дня выноса мозга:
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
/ / Возвращает информацию о корректности времени.
/ / Например , после вызова конструктора CTime time ( 99,32,83 ) ;
Добавлено через 1 минуту
Или я что-то пропустил??)))
Yandex
Объявления
11.03.2014, 18:54     Перегрузка операторов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru