Я собираюсь ввести вопрос прямо из своего листа заданий, я не ищу точный код всей проблемы, мне нужна помощь в выяснении перегруженных операторов, поэтому пример синтаксиса перегруженного + математического оператора был бы полезен. вот проблема...
Насколько я могу судить, * означает завершение.
***Класс Time включает две целочисленные переменные-члены (Hour и Minute), функции-мутаторы setHour и setMinute, а также функции-аксессоры getHour и getMinute. Эти функции должны быть встроенными.
***Класс времени также должен включать два конструктора и один деструктор. Конструктор по умолчанию должен инициализировать часы и минуты равными 0 и отображать сообщение «Привет от конструктора по умолчанию». Второй конструктор должен присвоить значение часам и минутам. Деструктор должен отображать сообщение «Прощай, деструктор». Эти функции также должны быть встроенными.
Теперь, чтобы складывать и вычитать количество часов и минут, добавьте функцию оператор +, которая перегружает стандартный математический оператор +, и функцию оператор -, которая перегружает стандартный математический оператор. *** Вам всем нужно добавить функцию упрощения, которая проверяет значения в минутах больше 59 или меньше 0 и обрабатывает их в соответствии с часами. Пример 2 в час и 65 в мин даст 3 в час и 5 в мин. Эти функции не должны быть встроенными.
Основная программа создаст три объекта времени (время1, время2, время3). Пользователю будет предложено ввести два значения времени, которые будут сохранены в первом и втором объектах. Затем первый и второй объекты будут добавлены и помещены в третий объект, а затем отображены, затем вычтены, помещены в третий объект, а затем отображены. Используйте конструктор по умолчанию с объявлением третьего объекта и перегруженный конструктор с объявлением первого и второго объекта.
* Конец назначения*****
* Стартовый код*****
#include<iostream>
#include<cstdlib>
using namespace std;
class TIME
{
private:
int min;
int hour;
public:
void tickTime();
void simplify();
TIME operator +();
TIME operator -();
TIME()
{
min = 0;
hour = 0;
cout << "Hello!!! From constructor\n";
}
TIME(int h, int m)
{
hour = h;
min = m;
}
~TIME()
{
cout << "Goodbye!!! From destructor.\n";
system("pause");
}
void setMin ( int m )
{
min = m;
}
void setHour (int h)
{
hour = h;
}
int getMin() const
{
return min;
}
int getHour() const
{
return hour;
}
};
void TIME :: tickTime()
{
min++;
if (min>59)
{
min=00;
hour++;
if (hour>23)
hour = 00;
}
return;
}
void TIME :: simplify()
{
{
if (min>=60)
{
hour += (min/60);
min = min % 60;
}
else if (min < 0)
{
hour -= ((abs(min) / 60) + 1);
min = 60 - (abs(min) % 60);
}
if (hour>23)
hour = 00;
}
return;
}
TIME TIME:: operator+()
{
return;
}
TIME TIME:: operator-()
{
return;
}
int main()
{
int min, hour;
TIME t;
int i, h, m;
cout << "Enter Hour: ";
cin >> h;
cout << "Enter Minute: ";
cin >> m;
t.setHour(h);
t.setMin(m);
cout << endl << endl;
for (i=1; i<=5; i++)
{
t.simplify();
t.tickTime();
cout << t.getHour() << ":" << t.getMin() << endl << endl;
}
system("pause");
return 0;
}
***Конец кода***
**Текущий образец вывода*** Здравствуйте!!! Из конструктора Введите час: 9 Введите минуту: 29
9:30
9:31
9:32
9:33
9:34
Нажмите любую клавишу для продолжения . . . До свидания!!! От деструктора. Нажмите любую клавишу для продолжения . . . ***Конец примера вывода***
Спасибо за помощь, я действительно просто не понимаю, что такое перегрузка, но я думаю, что смогу разобраться с объектами и всеми другими забавными вещами.
+
на самом деле не должен делать ничего, отдаленно напоминающего сложение. Вот почему они хотят знать, чего вы пытаетесь достичь. - person aruisdante   schedule 01.05.2014