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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа растрового построения окружности http://www.cyberforum.ru/cpp-beginners/thread7138.html
ПОМОГИТЕ НАЙТИ ИЛИ НАПИСАТЬ ПРОГУ НА С++ ДЛЯ BORLAND 3.1Напишите программу растрового построения окружности
C++ Ну никак не компилится. Начинаю изучать С++, никак не компилится: -------------------------------------------- #include void main(void) { cout << "Учимся программировать на языке C++!"; }... http://www.cyberforum.ru/cpp-beginners/thread7136.html
printf(), puts(), cout<< Что лучше? C++
Помогите разобраться какой способ вывода лучше и в какой ситуации. Чем они вообще отличаются друг от друга?
C++ C++ ошибка в рекурсивной функции...помогите разобраться...
Здравствуйте. Ниже написана программа с использованием рекурсивной функции... Функции s1,s2,s3,s4,s5-функции, вычисляющие суммы членов ряда, next- функция вычисления очередного члена ряда,...
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread7040.html
Необходимо подсчитать сколько слов в файле, состоящих из не более 4 символов. (на С++)Вот я написал, но она показыватся общее число слов в файле. КАк еще поставить ограничение, чтобы считала только...
C++ Перехожу на C Не могу закончить программу на Delphi, перехожу на С! Подскажите с чего лучше начать? Надо написать драйвер для Windows! Спасибо!!! подробнее

Показать сообщение отдельно
SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
05.04.2008, 22:24
Цитата Сообщение от 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru