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

Создание класса с перегрузкой операторов конструктор и деструктор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверьте!Даны вещественные массивы A[5][6], B[6]. Определить значения вещественного массива C[6] по правилу... http://www.cyberforum.ru/cpp-beginners/thread297716.html
Прошу о помощи! Проверьте задачку! Надеюсь что хоть часть будет верно написано (я ведь совсем не шарю в этой теме) _______________________________________________________________________________ Даны вещественные массивы A, B. Определить значения вещественного массива C по правилу: C=сумме j-го столбца массива A при B>0 C=0 при B=0 C=A+A при B<0 Значение переменной i изменяется от 0 до 5....
C++ В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее. В строке имеется одна точка с запятой ( ; ). Подсчитать количество символов до точки с запятой и после нее. http://www.cyberforum.ru/cpp-beginners/thread297714.html
Дана строка. Определить, сколько раз входит в нее группа букв abc C++
Дана строка. Определить, сколько раз входит в нее группа букв abc.
C++ error lnk 2019
здраствуйте! решил заняться win api и mfc, открываю книгу "Visual C++. Разработка Windows-приложений с помощью MFC и API-функций" пишу первый листинг. #include "stdafx.h" #include "firstWin.h" //#include <Windows.h> LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); BOOL InitApplication(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE hInstance, int...
C# Форма не становится поверх остальных окон http://www.cyberforum.ru/cpp-beginners/thread297689.html
Скажите пожалуйста, в чем ошибка private void поверхОкон_CheckedChanged(object sender, EventArgs e) { if (поверхОкон.Checked) { поверхОкон.Checked = true; this.TopMost = true; } else поверхОкон.Checked = false;
C++ Авто апдейт Есть ли у кого нибудь исходники программы авто обновлений? И как его собрать через Delphi? подробнее

Показать сообщение отдельно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
17.05.2011, 17:25     Создание класса с перегрузкой операторов конструктор и деструктор
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
Создать класс времени (Time) содержащий закрытую переменную-член хранящую целое значение времени интервала в секундах.
Интерфейс класса образуют функции-члены для доступа и изменения значения времени: GetHour(),GetMinute(), GetSecond(),
SetHour(const int), SetMinute(const int), SetSecond(const int). Для вывода значения объекта в формате «чч:мм:СС» определить функцию show().
Добавить в созданный класс конструктор по умолчанию, конструктор с одним аргументом(время в секундах)конструктор копирования деструктор.
Предусмотреть вывод на консоль отладочных сообщений о выполнений конструкторов и деструкторов.
 
Перегрузить для созданного класса следующие операторы:
Унарный минус-;
Составной оператор *=(правый операнд –целое число);
Бинарный оператор * (правый операнд-целое число);
Оператор присваивания =(правый операнд –объект класса времени).
 
Замечание: предусмотреть где это необходимо, проверку корректности аргументов функций.
 
 
Hh=T/3600
Mm=(T-hh*3600)/60);
Ss=T-hh*3600-mm*60
 
T-время заданное в секундах
 
Я вообще не понимаю что происходит в этом вопросе
*/
#include <iostream>
 
using namespace std;
 
class Time
{
    int seconds;
public:
    Time(int Seconds):
      seconds(Seconds)
    {
        std::cout << "Выполнен конструктор с одним аргументом.\n";
    }
    Time(const Time& t):
      seconds(t.seconds)
    {
        std::cout << "Выполнен конструктор копирования.\n";
    }
    Time():
      seconds(0)
    {
        std::cout << "Выполнен конструктор по умолчанию.\n";
    }
    ~Time()
    {
        std::cout << "Выполнен деструктор.";
    }
    int GetHour()   { return seconds / 3600;         }
    int GetMinute() { return ( seconds % 3600 ) / 60;}
    int GetSecond() { return seconds % 60;           }
    void show()     { std::cout << GetHour() << ':' << GetMinute() << ':' << GetSecond(); }
    void SetSecond(int s){ seconds = seconds / 60 * 60 + s;                }
    void SetMinute(int m){ seconds = seconds - GetMinute() * 60 + m * 60;  }
    void SetHour  (int h){ seconds = seconds % 3600 + h * 3600;            }
    void operator *=(int a ) { seconds *= a;             } 
    Time operator - (      ) { return Time(-seconds);    }
    Time operator * (int a ) { return Time(seconds * a); }
    void operator = (Time t) { seconds = t.seconds;      }
};
 
 
int main()
{
    setlocale( LC_ALL, "Russian" );
 
    int i;
 
    cout << "Введите длинну временного отрезка в секундах: ";
    cin >> i;
 
    Time time(i);
 
    time.show();
    std::cout << std::endl;
 
    time.SetHour(5);
    time.SetMinute(2);
    time.SetSecond(44);
 
    time.show();
    std::cout << std::endl;
}
 
Текущее время: 14:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru