Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 20.02.2012, 17:13   #1
 Пехотинец
Аватар для daff26
 
daff26 на правильном пути
Регистрация: 06.02.2011
Сообщений: 69
Популярность: 49
Сказал(а) спасибо: 102
Поблагодарили 54 раз(а) в 31 сообщениях
 
По умолчанию Перегрузка бинарных операторов

Вот решил выложить код. Пытаясь что бы Начинающие могли в любой момент что то для себя найти тут на нашем форуме

Вот собственно код : Все но языке С++

Код:
// Перегрузка оператора + относительно класса coord #include <iostream> using namespace std; class coord { int x,y; // значения координат public: coord() { x = 0; y= 0; } coord(int i, int j) { x = i; y = j; } void get_xy(int &i, int &j) { i = x; j = y; } coord operator+(coord ob2); }; // Перегрузка оператора + относительно класса coord coord coord::operator+(coord ob2) { coord temp; temp.x = x +ob2.x; temp.y = y +ob2.y; return temp; } int main() { coord o1(10, 10), o2(5, 3), o3; int x, y; o3 = o1 + o2; // сложение двух объектов - вызов функции operator+() o3.get_xy(x, y); cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n"; return 0; }



Вот еще вариант :

Код:
// Перегрузка операторов +, - и = относительно класса coord
#include <iostream>
using namespace std;

class coord {
    int x, y; // значения координат
public:
    coord() { x = 0; y= 0; }
    coord(int i, int j) { x = i; y = j; }
    void get_xy(int &i, int &j) { i = x; j = y; }
    coord operator+(coord ob2);
    coord operator-(coord ob2);
    coord operator=(coord ob2);
};

// Перегрузка оператора + относительно класса coord
coord coord::operator+(coord ob2)
{
    coord temp;

    temp.x = x + ob2.x;
    temp.y = y + ob2.y;

    return temp;
}

// Перегрузка оператора - относительно класса coord
coord coord::operator-(coord ob2)
{
    coord temp;

    temp.x = x - ob2.x;
    temp.y = y - ob2.y;

    return temp;
}

// Перегрузка оператора = относительно класса coord
coord coord::operator=(coord ob2)
{
    x = ob2.x;
    y = ob2.y;

    return *this; // возвращение объекта, которому присвоено значение
}

int main()
{
    coord o1(10, 10), o2(5, 3), o3;
    int x, y;

    o3 = o1 + o2; // сложение двух объектов - вызов функции operator+()
    o3.get_xy(x, y);
    cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n";

    o3 = o1 - o2; // вычитание двух объектов - вызов функции operator-()
    o3.get_xy(x, y);
    cout << "(o1 - o2) X: " << x << ", Y: " << y << "\n";

    o3 = o1; // присваивание объекта- вызов функции operator=()
    o3.get_xy(x, y);
    cout << "(o3 = o1) X: " << x << ", Y: " << y << "\n";

    return 0;
}

И еще один выберайте смотрите спрашивайте....

Код:
// Перегрузка оператора + как для операции ob+ob,
// так и для операции ob+int
#include <iostream>
using namespace std;

class coord {
    int x, y; // значения координат
public:
    coord() { x = 0; y= 0; }
    coord(int i, int j) { x = i; y = j; }
    void get_xy(int &i, int &j) { i = x; j = y; }
    coord operator+(coord ob2); // ob + ob
    coord operator+(int i); // ob + int
};

// Перегрузка оператора + относительно класса coord
coord coord::operator+(coord ob2)
{
    coord temp;

    temp.x = x +ob2.x;
    temp.y = y +ob2.y;

    return temp;
}

// Перегрузка оператора + для операции ob+int
coord coord::operator+(int i)
{
    coord temp;

    temp.x = x +i;
    temp.y = y +i;

    return temp;
}

int main()
{
    coord o1(10, 10), o2(5, 3), o3;
    int x, y;

    o3 = o1 + o2; // сложение двух объектов
                  // вызов функции operator+(coord)
    o3.get_xy(x, y);
    cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n";

    o3 = o1 + 100; // сложение объекта и целого
                   // вызов функции operator+(int)
    o3.get_xy(x, y);
    cout << "(o1 + 100) X: " << x << ", Y: " << y << "\n";

    return 0;
}

Последний раз редактировалось daff26; 20.02.2012 в 17:17.
  Ответить с цитированием
Старый 16.09.2012, 11:18   #2
 Старший сержант
Аватар для AloneDance
 
AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(AloneDance сломал счётчик популярности :(
Регистрация: 12.04.2011
Сообщений: 215
Популярность: 34306
Золото Zhyk.Ru: 10
Сказал(а) спасибо: 499
Поблагодарили 431 раз(а) в 300 сообщениях
Отправить сообщение для AloneDance с помощью Skype™
 
По умолчанию Re: Перегрузка бинарных операторов

а можно вопрос:
для чего это нужно?
  Ответить с цитированием
Старый 17.09.2012, 10:56   #3
 Разведчик
Аватар для nitrotek
 
nitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компании
Регистрация: 10.06.2010
Сообщений: 30
Популярность: 940
Сказал(а) спасибо: 7
Поблагодарили 139 раз(а) в 22 сообщениях
 
По умолчанию Re: Перегрузка бинарных операторов

Цитата:
а можно вопрос:
для чего это нужно?

очень удобно когда нужно ввести понятие комплексного числа и дроби.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 01.10.2012, 19:39   #4
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Перегрузка бинарных операторов

автор, почему вы не указали источник ? [Ссылки могут видеть только зарегистрированные пользователи. ] (один из примеров "источ ника").
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка Григорий Общение и обсуждение Perfect World 6 08.11.2009 14:26
[Руководство] Перегрузка operator+ shagart С/С++ 0 05.12.2008 19:12

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 23:35.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net