Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

11.03.2014, 12:00. Просмотров 955. Ответов 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 ();
} ;
Реализуйте конструкторы и функции-члены данного класса , а также оператор *=
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 12:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операторов (C++):

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

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

Перегрузка операторов - C++
В общем задание следующее: Создайте класс chess (шахматы), в котором хранятся поля шахматной доски x, y (целые числа, лежащие в диапазоне...

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

[c++] Перегрузка операторов - C++
Не работает. #include <conio.h> #include <iostream.h> #pragma argsused struct FazzyNumber { double x; double x1,x2; ...

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

22
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 18:23 #16
Уже лучше, пара ошибок, но нет оператора перегрузки и не правильно реализована проверка
C++
1
 bool IsValid(){return true;}
а так что-то уже похожее на код теперь задавай вопросы что не выходит.
0
Yaroslav1
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
11.03.2014, 18:38  [ТС] #17
непонятно как реализовать оператор
0
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;
}
1
SatanaXIII
Супер-модератор
Эксперт С++
5638 / 2673 / 252
Регистрация: 01.11.2011
Сообщений: 6,569
Завершенные тесты: 1
11.03.2014, 18:47 #19
Цитата Сообщение от mustimur Посмотреть сообщение
не правильно реализована проверка
А мне нравится ход мыслей:
C++
1
2
3
4
Ctime t(0,1,12);
 
if( t.IsValid() )
  {
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 18:54 #20
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А мне нравится ход мыслей:
первое что на ум пришло после дня выноса мозга:
Цитата Сообщение от Yaroslav1 Посмотреть сообщение
/ / Возвращает информацию о корректности времени.
/ / Например , после вызова конструктора CTime time ( 99,32,83 ) ;
Добавлено через 1 минуту
Или я что-то пропустил??)))
0
SatanaXIII
11.03.2014, 18:55
  #21

Не по теме:

mustimur, не. Я имел в виду такое использование метода с вот этой реализацией:

C++
1
bool IsValid(){return true;}

0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
11.03.2014, 19:06 #22

Не по теме:

ааааа , но это я поправил ему. она сейчас корректна, но ход Ваших мыслей мне симпатичен



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

Не по теме:

SatanaXIII, отдельное спасибо за вставку тегов в пост ТС, по-раньше бы а то его трудно было..

0
SatanaXIII
11.03.2014, 19:16     Перегрузка операторов
  #23

Не по теме:

mustimur, я бы рад конечно принять благодарность, но только это заслуга KOPOJI и UI.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 19:16
Привет! Вот еще темы с ответами:

перегрузка операторов - C++
Всем привет. Дошел до темы перегрузки операторов и возникло два вопроса. Первый: Чем отличается вот этот код String ...

Перегрузка операторов - C++
В общем учу эту тему и ввожу код один в один как в уроке, но в уроке он компилится, а у меня нет. Ругается на &quot;c1++;&quot;, подскажите...

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

Перегрузка операторов ++ - C++
доброго времени суток. есть утечка памяти как я понимаю, но не мойму почему. о чем программа: есть обьект типа MString. В этом классе...


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

Или воспользуйтесь поиском по форуму:
23
11.03.2014, 19:16
Ответ Создать тему
Опции темы

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