Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 40
1

Перегрузить операцию ++ для добавления одной секунды

22.06.2016, 20:06. Показов 1134. Ответов 7
Метки нет (Все метки)

2) Для класса
class TIme
{
int min, sec;
.....
}
перегрузить операцию ++, добавляющую одну секунду к объекту типа Time
(учесть, что секунда не может быть больше 59).
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2016, 20:06
Ответы с готовыми решениями:

Перегрузить операцию "+" для добавления элемента в начало списка
Здравствуйте.Столкнулся с такой вот проблемой. Нужно перегрузить операцию "+" для добавления...

Для класса квадрат требуется перегрузить операцию *
Для класса квадрат требуется перегрузить операцию *. Но не могу понять, что представляет из себя...

Как перегрузить операцию ++ для строк
Перегрузить унарные операторы «++» (префиксную и постфиксную). Как перегружать для int и для...

Перегрузить операцию + для потока вывода ostream
Перегрузите операцию + для потока вывода ostream и числа x так, что она подготовливает поток к...

7
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
22.06.2016, 21:48 2
C#
1
2
3
4
public static int operator ++(int sec)
{
    //реализация        
}
0
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 40
22.06.2016, 22:57  [ТС] 3
Спасибо, но мне нужен полный ответ на вопрос
0
660 / 366 / 204
Регистрация: 02.06.2016
Сообщений: 624
22.06.2016, 23:28 4
westyer,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Time
{
    public int min, sec;
 
    public static Time operator ++ (Time x)
    {
        // Копируем объект
        Time y = (Time)x.MemberwiseClone();
 
        // Прибавляем секунду по модулю 60
        y.min += ++y.sec / 60;
        y.sec %= 60;
 
        // Возвращаем новый(!) объект
        return y;
    }
}
0
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
22.06.2016, 23:52 5
westyer,
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
using System;
                    
public class Program
{
    public static void Main()
    {
        TIme time = new TIme(4, 19);
        Console.WriteLine(time);
        Console.WriteLine(++time);
    }
}
 
public class TIme
{
    int Min{get; set;}
    int Sec{get; set;}
    public TIme()
    {
        Min = Sec = 0;
    }
        
    public TIme(int min, int sec)
    {
        Min = min; Sec = sec;
    }
    public static TIme operator ++(TIme time) =>
        ++time.Sec == 60 ?  new TIme(time.Min + 1, 0) : new TIme(time.Min, time.Sec); 
    public override string ToString() => Min + ":" + Sec;
 
}
0
660 / 366 / 204
Регистрация: 02.06.2016
Сообщений: 624
23.06.2016, 01:16 6
SashaPl, у Вас постфиксная запись не будет работать в таком варианте
C#
1
Console.WriteLine(t++); // должно показывать старое значение
0
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
23.06.2016, 02:57 7
Aael, а что нужно исправить, что бы постфик возвращал старое значение? Использовать MemberwiseClone?
0
660 / 366 / 204
Регистрация: 02.06.2016
Сообщений: 624
23.06.2016, 04:45 8
SashaPl, нужно не трогать старый объект (без ++time.Sec):
C#
1
2
public static TIme operator ++(TIme time) =>
    time.Sec == 59 ? new TIme(time.Min + 1, 0) : new TIme(time.Min, time.Sec + 1);
Вообще задание странное, поле Sec само за себя должно думать, что у него там больше 60, а что нет..
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2016, 04:45

Перегрузить операцию сложения для класса дробей
Люди добрые, помогите инвалиду;) Нужно написать программу на Си, задача такова: Перегрузить...

Перегрузить операцию + для объединения двух строк в одну
Всем привет! В общем, необходимо перегрузить оператор + для объединения двух строк в одну(Прата)....

Как перегрузить операцию = для присваивания элементам структуры внутри класса значений?
Помогите, если не затруднительно. Столкнулся с проблемой, когда пытался присвоить в конструкторе...

Перегрузить операцию --
Помогите пожалуйста отладить, никак не получается перегрузить операцию --, + перегрузил, а --...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru