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

К числу прибавить объект класса - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
BenBen
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 15
17.01.2012, 18:17     К числу прибавить объект класса #1
Не получается перегрузить '+' для сложения числа с объектом

Пишу через френд
C++
1
friend Vremya operator + (int a, Vremya );
C++
1
2
3
4
5
6
7
8
9
Vremya operator + (int a, Vremya b)
{
        int sec = getSec(b);         //getSec - перевод в секунды, getHour - перевод в часы
        while (a-- != 0)
        {
        sec++;
        }
        return b = getHour(sec);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 18:17     К числу прибавить объект класса
Посмотрите здесь:

В конструктор класса передать объект этого класса C++
C++ нужно чтобы в строке если встречается символ то прибавить соответствующую цифру к числу
C++ Ошибка компиляции (преобразование объекта класса в объект другого класса)
C++ Индексация массива класса, через объект этого класса
как узнать,является данный объект класса А1 наследником класса А2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
19.01.2012, 20:46     К числу прибавить объект класса #21
Цитата Сообщение от BenBen Посмотреть сообщение
C++
1
t1 + 10; //работает
тот же случай - t1 не должно меняться, а у вас здесь
Цитата Сообщение от BenBen Посмотреть сообщение
C++
1
2
3
4
5
6
Vremya &Vremya::operator + (int a)
{
    int sec = getSec(*this);
    sec += a;
    return *this = getHour(sec);
}
меняет

Добавлено через 2 минуты
должно быть так
C++
1
2
3
4
Vremya Vremya::operator + (int a)
{
    return getHour(getSec(*this) + a);
}
Добавлено через 2 минуты
и пользоваться этим надо как-то так
C++
1
2
t2 = t1 + 10; // Vremya Vremya::operator + (int a);
t2 = 10 + t1; // Vremya operator + (int a, const Vremya &t);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BenBen
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 15
19.01.2012, 20:46  [ТС]     К числу прибавить объект класса #22
А почему не должно меняться? Ведь если например к 3 прибавить 1 оно станет 4 и изменилось

Добавлено через 27 секунд
а понял
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
19.01.2012, 21:02     К числу прибавить объект класса #23
а еще лучше определите уже оба
C++
1
Vremya Vremya::operator +
не как член класса и не как френд. и
C++
1
Vremya Vremya::operator -
это тоже касается. и они не должны возвращать ссылки
подсказка: у вас есть operator += и operator -= - члены класса
BenBen
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 15
19.01.2012, 21:42  [ТС]     К числу прибавить объект класса #24
Я так и не понял как это сделать(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 21:45     К числу прибавить объект класса
Еще ссылки по теме:

Создание статической функции класса, которая принимает экземпляр этого же класса как объект C++
C++ Создать объект внутри класса, который может вызывать функцию этого класса
Указатель на объект базового класса и адрес объекта производного класса C++

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

Или воспользуйтесь поиском по форуму:
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
19.01.2012, 21:45     К числу прибавить объект класса #25
например так
C++
1
2
3
4
5
6
7
8
9
Vremya Vremya::operator+(const Vremya &t, int a)
{
    return Vremya(t) += a;
}
 
Vremya Vremya::operator+(int a, const Vremya &t)
{
    return operator+(t, a);
}
operator- по аналогии
Yandex
Объявления
19.01.2012, 21:45     К числу прибавить объект класса
Ответ Создать тему
Опции темы

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