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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.89
softrix
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 48
#1

Перегрузка операторов ? - C++

05.04.2008, 20:02. Просмотров 7755. Ответов 4
Метки нет (Все метки)

Народ подскажите, как сделать перегрузку для такой задачи
нужно перегрузить оператор + чтобы правильно выполнялось сложение для следующих примеров:

Point pt1;
Point pt2;

pt1 = 5 + pt2
pt1 = pt2 + 5

//Для

pt1 = pt2 + 5

//понятно


//Определение:
Point& operator + (Point &ref);

//тело:
Points& Points::operator + (Points &ref)
{
m_x=m_x + ref.m_x;
m_y=m_y + ref.m_y;

return *this;
}

//А вот для это решение уже кончено не работает
pt1 = 5 + pt2

а как сделать по другому, понять не могу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2008, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операторов ? (C++):

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

Перегрузка операторов - C++
Доброго времени суток! Столкнулся с такой проблемой, перегрузка операторов. Имею работающий код, но не смог сделать по своему заданию. ...

Перегрузка операторов - C++
В общем задание следующее: Создайте класс chess (шахматы), в котором хранятся поля шахматной доски x, y (целые числа, лежащие в диапазоне...

Перегрузка операторов - C++
Решите пожалуйсто задачу: Разработайте программу, в которой реализована перегрузка оператора «^». Оператор «^» должен возводить...

[c++] Перегрузка операторов - C++
Не работает. #include <conio.h> #include <iostream.h> #pragma argsused struct FazzyNumber { double x; double x1,x2; ...

C++ перегрузка операторов - C++
люди такая ситуация кто может в краце объясните перегрузку операторов мне например надо перегрузить оператор умножения что бы умножить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
05.04.2008, 22:24 #2
Цитата Сообщение от softrix Посмотреть сообщение
Народ подскажите, как сделать перегрузку для такой задачи
нужно перегрузить оператор + чтобы правильно выполнялось сложение для следующих примеров:

Point pt1;
Point pt2;

pt1 = 5 + pt2
pt1 = pt2 + 5

//Для

pt1 = pt2 + 5

//понятно


//Определение:
Point& operator + (Point &ref);

//тело:
Points& Points::operator + (Points &ref)
{
m_x=m_x + ref.m_x;
m_y=m_y + ref.m_y;

return *this;
}

//А вот для это решение уже кончено не работает
pt1 = 5 + pt2

а как сделать по другому, понять не могу.
Для этого объявляй ф-ции перегрузки операторов не как ф-ции члены класса, а как ф-ции-друзья. Пример:
Код
friend Point operator+(const Point& ob1,const Point& ob2)
А дальше уже

Код
Point& [COLOR=#0000cc]operator[/COLOR] + (const Point& ob1,const Point& ob2)
{
Point ob;
ob.m_x=ob1.m_x + ob2.m_x;
ob.m_y=ob1.m_y + ob2.m_y;
 
[COLOR=#0000cc]return[/COLOR] ob;
}
1
softrix
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 48
05.04.2008, 22:54  [ТС] #3
А, с помощью объявления в классе не получится ? Только через функции друзья это можно сделать ? А то у меня в лабе задание сделать через функции класса ! Может это конечно препод прикалолся )
0
SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
06.04.2008, 10:47 #4
Через объявление ф-ции члена класса pt1 = 5 + pt2 считаться не будет! Это выражение будет считаться только через друзья класса!
1
softrix
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 48
06.04.2008, 17:01  [ТС] #5
Понял, спасибо так и сделаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2008, 17:01
Привет! Вот еще темы с ответами:

перегрузка операторов - C++
Всем привет. Дошел до темы перегрузки операторов и возникло два вопроса. Первый: Чем отличается вот этот код String ...

Перегрузка операторов - C++
В общем учу эту тему и ввожу код один в один как в уроке, но в уроке он компилится, а у меня нет. Ругается на "c1++;", подскажите...

Перегрузка операторов - C++
Создайте класс Fraction (обыкновенная дробь), в котором реализовать перегрузку: оператора суммирования дробей, оператора суммирования дроби...

Перегрузка операторов ++ - C++
доброго времени суток. есть утечка памяти как я понимаю, но не мойму почему. о чем программа: есть обьект типа MString. В этом классе...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.04.2008, 17:01
Ответ Создать тему
Опции темы

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