Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
8 / 8 / 9
Регистрация: 23.09.2015
Сообщений: 283
1

Реализовать перегрузку операций

01.06.2016, 20:35. Показов 1391. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кроме того, необходимо реализовать перегрузку операций сложения, вычитания,
скалярного и векторного произведения.
Я читал про перегрузку,но не понятно,для чего она,и зачем вообще?Как я понял,это поддержка функций с одинаковыми названиями....

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <cmath>
 
using namespace std;
class Vector
{
private: int x, y;
 
public: Vector() : x(0), y(0)
{
 
}
        Vector(int x, int y) :x(x), y(y)
        {
        }
 
        void ShowData()
        {
            cout << "(" << x << "," << y << ")";
            cout << endl;
        }
        double GetDlina()
        {
            return sqrt(x*x + y*y);
        }
bool operator== (Vector &v, Vector &v1)
{
    return (v.x == v1.x && v.y == v1.y);
}
 
bool operator!= (Vector &v, Vector &v1)
{
    return !(v == v1);
}
 
};
int main()
{
    int x, y,x2,y2;
 
    cout << "Enter x && y=";
    cin >> x >> y;
    Vector v(x, y);
 
    cout << "Enter x2 && y2=";
    cin >> x2 >> y2;
    Vector v1(x2, y2);
 
    v.ShowData();
    v1.ShowData();
    cout << v.GetDlina() << endl;
    cout << v1.GetDlina() << endl;
    system("pause");
    return 0;
}
Добавлено через 6 минут
C++
1
2
3
4
bool operator== (const Vector &v1)
{
    return (x == v1.x && y == v1.y);
}
забыл изменить
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2016, 20:35
Ответы с готовыми решениями:

Реализовать перегрузку операций = и ==
Вообщем есть такое задание Создать 2 объекта a и b, разработанного класса – символьная строка,...

Реализовать класс для выполнения арифметических действий с дробями, включая конструкторы и перегрузку операций
Доброго времени суток!! Нужна помощь с заданием, необходимо скоро сдавать лабораторку:( Задание:...

Реализовать класс "курсор", используя конструкторы, перегрузку операций и обработку исключений
Написал код, тут реализован класс &quot;курсор&quot; где указаны манипуляции с разными его параметрами....

Сделать перегрузку операций в коде
Есть готовый код рабочей програмы и отдельно перегрузки которые надо вставить, никак не могу удачно...

3
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
01.06.2016, 20:41 2
Лучший ответ Сообщение было отмечено Bob103 как решение

Решение

Bob103, ну, например, перегружаем оператор *.
Я бы хотел от него следующее:
1) Вектор * Вектор - покомпонентное умножение векторов, что бы писать:
C++
1
2
3
Vector a, b;
...
Vector c = a * b;
2) Скаляр * Вектор - умножение вектора на скаля:
C++
1
2
3
Vector a;
...
Vector c = 5 * a;
На практике для такого нужно написать две реализации функции operator *, одну для пары векторов, другую для скаляра и вектора.

Добавлено через 4 минуты
Цитата Сообщение от Bob103 Посмотреть сообщение
Кроме того, необходимо реализовать перегрузку операций сложения, вычитания,
скалярного и векторного произведения.
Ну по заданию тут не требуют создавать функции с одинаковыми названиями.
Просто это устоявшееся выражение, что операторы перегружают (Даже если перегружать то и нечего).
Тебе просто требуется реализовать требуемые операции.
0
8 / 8 / 9
Регистрация: 23.09.2015
Сообщений: 283
01.06.2016, 20:47  [ТС] 3
эммм...теперь ещё больше не понял,а для чего тогда написали перегрузка
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Ну по заданию тут не требуют создавать функции с одинаковыми названиями.
Просто это устоявшееся выражение, что операторы перегружают (Даже если перегружать то и нечего).
Тебе просто требуется реализовать требуемые операции.
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
01.06.2016, 21:00 4
Цитата Сообщение от Bob103 Посмотреть сообщение
теперь ещё больше не понял,а для чего тогда написали перегрузка
Я же уже ответил - устоявшееся выражение.
Возможных операторов большое множество, и для некоторых действительно есть реализации по-умолчанию, которые можно перегрузить, а для некоторых - нет. Но когда их реализуют, то все равно говорят - перегрузка.
1
01.06.2016, 21:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2016, 21:00
Помогаю со студенческими работами здесь

Не могу въехать в перегрузку операций
Не могу въехать в перегрузку операций,помогите пожалуйста,объясните дураку что куда вставлять и что...

Задание на перегрузку стандартных операций ( классы )
Здравствуйте! Задание звучит так: Описать класс «матрица чисел» с компонентными данными:...

Где почитать про перегрузку поразрядных логических операций (|, &, ^)
Здравствуйте. Подскажите пособие, где как можно подробно описывается перегрузка поразрядных...

Не получается реализовать перегрузку операторов
Начал изучать С++, пытаюсь перегрузить оператор, чет не очень получается, в чем ощибка? class...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru