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

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

Восстановить пароль Регистрация
 
 
Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 12:00     Перегрузка операторов #1
Реализуйте класс 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++ [c++] Перегрузка операторов
[C++] Перегрузка операторов C++
C++ Перегрузка операторов
перегрузка операторов C++
C++ перегрузка операторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 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
Модератор
 Аватар для KOPOJI
16239 / 6450 / 389
Регистрация: 12.06.2012
Сообщений: 19,327
11.03.2014, 12:27     Перегрузка операторов #5
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
Мне просто нужна помощь
И поэтому вы создали клона?
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 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++
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     Перегрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 16:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru