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

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

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

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

09.11.2016, 11:53. Просмотров 132. Ответов 2
Метки нет (Все метки)

Расскажите можно ли как-то сделать перегрузку операторов не в классе, а в своём пространстве имён?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2016, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операторов (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++
люди такая ситуация кто может в краце объясните перегрузку операторов мне например надо перегрузить оператор умножения что бы умножить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Atakai
59 / 15 / 7
Регистрация: 23.10.2015
Сообщений: 47
09.11.2016, 12:23 #2
Перегрузку операторов класса вы делаете для экземпляра (объекта) этого класса. У пространств имен не может быть экземпляров.

Если Вы имели ввиду делать перегрузку не в объявлении, а определении класса, тогда можно:
C++
1
2
3
4
5
6
7
8
class Sample {
  Sample operator+(Sample arg, Sample arg2);
};
 
Sample Sample::operator+(Sample arg, Sample arg2)
{
  //...
}
Но все равно перегрузку сначала нужно будет объявить.

Еще можно использовать функции-друзья.
C++
1
2
3
4
5
6
7
class Sample {
  friend Sample operator+(Sample arg, Sample arg2);
};
 
Sample operator+(Sample arg, Sample arg2) {
  // ...
}
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3802 / 2060 / 526
Регистрация: 18.10.2014
Сообщений: 3,665
10.11.2016, 03:15 #3
Цитата Сообщение от watovl Посмотреть сообщение
можно ли как-то сделать перегрузку операторов не в классе, а в своём пространстве имён?
Можно

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct S {};
 
namespace N {
    void operator +(const S &, const S &) {}
}
 
int main ()
{
  using namespace N;
  S s;
  s + s;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 03:15
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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