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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
BenBen
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 15
#1

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

17.01.2012, 18:17. Просмотров 1285. Ответов 24
Метки нет (Все метки)

Не получается перегрузить '+' для сложения числа с объектом

Пишу через френд
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++
Создание статической функции класса, которая принимает экземпляр этого же класса как объект C++
C++ Создать объект внутри класса, который может вызывать функцию этого класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
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
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
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++
Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? C++
C++ Массив. Прибавить к 1ому числу 1ую цифру 2ого и т. д! :)

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

Или воспользуйтесь поиском по форуму:
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
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     К числу прибавить объект класса
Ответ Создать тему
Опции темы

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