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

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

Восстановить пароль Регистрация
 
8bpp
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 13
03.06.2013, 12:43     Перегрузка операторов #1
Объяните пожалуйста такой вопрос:
Перегрузка операторов в форме внешних функций и методов класса в языке C++.
Что делает? и т.д. и т.п.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 12:43     Перегрузка операторов
Посмотрите здесь:

[c++] Перегрузка операторов C++
C++ Перегрузка операторов
Перегрузка операторов C++
C++ перегрузка операторов >>,<<,[]
C++ Перегрузка операторов
Перегрузка операторов C++
C++ Перегрузка операторов + и =
Перегрузка операторов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
03.06.2013, 12:57     Перегрузка операторов #2
в форме методов класса. перегрузка нужна например для применения базовых операторов к объектам класса. вы хотите сложить 2 объекта но компилятор не понимает как это сделать, т.к знания оператора ограничиваются на применении операторов к базовым классам (int,char)(класс как вы знаете является не чем иным как новым типом данных).перегрузка дает знания компилятору что делать с объектами при некоторых операторах(+,-,/...)
как-то так
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
03.06.2013, 12:59     Перегрузка операторов #3
В форме методов класса - это значит как метод, во внешней форме - как глобальная функция. Унарные методы-операции принимают 0 аргументов, унарные глобальные функции - 1 аргумент, бинарные методы-операции принимают 1 аргумент, глобыльные функции - 2 аргумента. Исключения - операции постинкремента и постдекремента, которые принимают один дополнительный мнимый аргумент, оператор вызова функции (), который принимает неограниченное число аргументов, операторы (), [], -> и ->*, которые не могут быть глобальными. Операции ., .* , :: , new и delete не могут быть перегружены. Особые ограничения есть у операций operator new и operator delete, но их приходится перегружать довольно редко

Пример бинарного оператора + как метода
C++
1
2
3
4
class CL1
{
    CL1& operator+(const CL1& cl1);
}
как глоб. функция
C++
1
CL1& operator+(const CL1& cl11, const CL1& cl12);
Yandex
Объявления
03.06.2013, 12:59     Перегрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 21:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru