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

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

Войти
Регистрация
Восстановить пароль
 
HappyFanik
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 39
#1

Перегрузка операции - C++

25.05.2012, 19:07. Просмотров 473. Ответов 5
Метки нет (Все метки)

Всем привет! Помогите сделать пожалуйста задание, а то совсем я не понимаю его

Перегрузите операции суммы, скалярного произведения, модуля.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 19:07     Перегрузка операции
Посмотрите здесь:

C++ Перегрузка операции =
Перегрузка операции C++
C++ Перегрузка операции
Перегрузка операции + C++
C++ Перегрузка операции =
Перегрузка операции C++
C++ Перегрузка операции %
Перегрузка операции ~ C++
Перегрузка операции >> C++
C++ Перегрузка операции
Перегрузка операции >> C++
C++ Перегрузка операции >>

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mortemia
2 / 2 / 1
Регистрация: 24.05.2012
Сообщений: 23
25.05.2012, 19:20     Перегрузка операции #2
Просто пишешь по сути одинаковые функции, но принимающие разные типы данных.
Например, одновременно прописываешь функцию
C++
1
int sum(int* A, int* B);
и
C++
1
double sum(double* A, double* B);
При вызове sum программа сама определяет какую из функций необходимо вызвать в зависимости от типов передаваемых данных.
Уж как написать сами функции суммы, скалярного произведения, модуля, надеюсь, очевидно.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
25.05.2012, 19:27     Перегрузка операции #3
вам нужно перегрузить операции или функции?
HappyFanik
0 / 0 / 0
Регистрация: 04.03.2011
Сообщений: 39
25.05.2012, 19:36  [ТС]     Перегрузка операции #4
Операции перегрузить надо!
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
25.05.2012, 19:52     Перегрузка операции #5
C++
1
2
3
4
5
6
7
MyClass& operator+(const MyClass& lhs, const MyClass& rhs)
{
   MyClass tmp = lhs;
   tmp.x = tmp.x + rhs.x; //складываешь нужные переменные
   return tmp;
 
}
Операция произведения делается аналогично.
А операции модуль нет в С++.
MrGluck
Ворчун
Эксперт CЭксперт С++
6675 / 3856 / 510
Регистрация: 29.11.2010
Сообщений: 10,214
25.05.2012, 20:06     Перегрузка операции #6
Я так понял слово операция относиться к математическому термину. Тогда нужно перегружать функции. Если же имеется ввиду термин с программирования, то необходимо перегрузить операторы.
Т.к. "модуль" не перегружается, то думаю необходимо работать с функциями. Ну тогда это тривиально.

C++
1
2
3
4
5
6
7
int sum (int a, int b) { return a + b; }
double sum (double a, double b) { return a + b; }
float sum (float a, float b) { return a + b; }
 
int myabs(int a) { return (a > 0 ? a : -a); } 
double myabs(double a) { return (a > 0 ? a : -a); }
float myabs(float a) { return (a > 0 ? a : -a); }
А перегружать скалярное произведение лень.
Yandex
Объявления
25.05.2012, 20:06     Перегрузка операции
Ответ Создать тему
Опции темы

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