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

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

Войти
Регистрация
Восстановить пароль
 
goodjob
1 / 1 / 1
Регистрация: 01.04.2013
Сообщений: 73
#1

Перегрузка оператора ( ) для объектов класса - C++

21.01.2014, 20:23. Просмотров 331. Ответов 4
Метки нет (Все метки)

Здравствуйте!
перегрузили оператор (). Каким образом компилятор поймет где мы вызываем оператор (), а где , например, конструктор? каким образом вообще перегружается оператор()?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 20:23     Перегрузка оператора ( ) для объектов класса
Посмотрите здесь:

Перегрузка оператора -> для шаблонного класса - C++
Здравствуйте! Возникла проблема: не могу додуматься как перегрузить оператор -> так, чтобы он корректно работал. Вот код: template<class...

Перегрузка оператора- для шаблона класса - C++
Ребят подскажите что не так я делаю или подтолкните в нужное русло =\ З.Ы. Массивы будем рассматривать одинаковой длины. #include...

Перегрузка оператора + для класса Date - C++
Здравствуйте! Как правильно перегрузить оператор +(Date, int) для класса Date, чтобы дата увеличивалась на нужное количество дней? При этом...

Перегрузка оператора >> для пользовательского класса String - C++
Объявление класса: class String { public: //constructor String( const char * = NULL ); //default constructor String( const...

Перегрузка оператора '+' для char* вне класса - C++
Хочу перегрузить конкатенацию массивов char'ов через операцию '+'. Не могу понять, возможно ли запустить следующую конструкцию, подправив...

Перегрузка оператора равно для класса файла - C++
Доброго времени суток. Помогите разобраться с перегрузкой. Идея в том, чтобы экземпляр класса создавал иллюзию работы с массивом. Т.е. ...

Перегрузка оператора вывода на консоль для шаблонного класса - C++
Следующий код компилируется, но не линкуется: #include <iostream> using namespace std; template <typename T> class A { ...

Перегрузка оператора ввода для класса с динамическими данными - C++
Доброго времени суток, помогите пожалуйста разобраться с перегрузкой оператора ввода. Есть такой класс class TR { char* nametr; ...

Перегрузка оператора индексации для класса плохо себя ведёт - C++
Собственно, есть такое дело. #include <iostream> #include <stdio.h> #include <vector> #include <string> using namespace std; ...

Перегрузка оператора = в шаблоне класса - C++
Доброго дня! Возник такой вот вопрос: я сделал шаблон класса и пытаюсь перегрузить его оператор присваивания, в итоге получается...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.01.2014, 20:33     Перегрузка оператора ( ) для объектов класса #2
Цитата Сообщение от goodjob Посмотреть сообщение
Каким образом компилятор поймет где мы вызываем оператор (), а где , например, конструктор?
от контекста же
C++
1
obj(); //вызов оператора ()
C++
1
Foo obj(); //декларация функции
C++
1
Foo obj; //создание объекта и вызов конструктора по умолчанию
Добавлено через 1 минуту
Цитата Сообщение от goodjob Посмотреть сообщение
каким образом вообще перегружается оператор()?
operator()
MrGluck
Модератор
Эксперт CЭксперт С++
7152 / 4318 / 630
Регистрация: 29.11.2010
Сообщений: 11,738
21.01.2014, 21:00     Перегрузка оператора ( ) для объектов класса #3
operator()
И посмотрите там еще ссылочку на статейку полезную (себя не похвалишь - никто не похвалит, проталкиваю её в массы )
goodjob
1 / 1 / 1
Регистрация: 01.04.2013
Сообщений: 73
22.01.2014, 21:16  [ТС]     Перегрузка оператора ( ) для объектов класса #4
Цитата Сообщение от Jupiter Посмотреть сообщение
от контекста же
C++
1
obj(); //вызов оператора ()
C++
1
Foo obj(); //декларация функции
C++
1
Foo obj; //создание объекта и вызов конструктора по умолчанию
Добавлено через 1 минуту

operator()
ну например мы создали в классе конструктор с двумя параметрами, и оператор () также с двумя параметрами, осуществили вызов (например s1(n,m)), что именно будет вызвано или где тут ошибка?
MrGluck
Модератор
Эксперт CЭксперт С++
7152 / 4318 / 630
Регистрация: 29.11.2010
Сообщений: 11,738
22.01.2014, 21:23     Перегрузка оператора ( ) для объектов класса #5
Цитата Сообщение от goodjob Посмотреть сообщение
осуществили вызов (например s1(n,m)), что именно будет вызвано или где тут ошибка?
C++
1
2
3
Classname s1(n, m); // вызов конструктора Classname
Classname s2;
s2(n, m); // вызов оператора с двумя параметрами
Yandex
Объявления
22.01.2014, 21:23     Перегрузка оператора ( ) для объектов класса
Ответ Создать тему
Опции темы

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