Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 21:02   #1
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию MSVC++: ключевое слово operator

что это и с чем его едят?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.10.2009, 21:10   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Это для перегрузки операторов для класса
Код:
class INT {
    int number;
public:
    INT(int _n)
    {
        number = _n;
    }

    bool operator== (int n)
    {
         return number == n;
    }

    INT& operator= (int n)
    {
         number = n;

         return *this; // Забыл про это )
    }
};

int main()
{
     INT numero(10);
  
     if( numero == 10 )
          numero = 4;

     return 0;
}
Таким образом можно реализовать поведение пользовательского типа как базового.
Не помню всех операторов, которые можно перегрузить таким образом, но как минимум эти:
new, delete, *(binary), +(binary), -(binary), +(unary), -(unary), ++(prefix), ++(postfix), --(prefix), --(postfix), ->, , , =, ==, !=, <, >, !, +=, -=, *(selector)

...

Да, ещё забыл, довольно важный в некоторых случаях, оператор приведения, например:
Код:
class INT {
...
operator int () // возвращаемого типа нет, он будет того типа, к которому происходит приведение
{
     return number;
}
Но этим особо увлекаться не стоит

Последний раз редактировалось netrino; 20.10.2009 в 21:32. Причина: Добавил и исправил ошибку
netrino вне форума Ответить с цитированием
Старый 20.10.2009, 21:32   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

большое спасибо
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MSVC++ 2008. Разработать и протестировать класс Point p_alex Помощь студентам 5 18.10.2009 23:25
Ключевое поле Artruman БД в Delphi 1 10.04.2009 10:02
Как сделать XP интерфейс в MSVC++? AngelOfDeath Общие вопросы C/C++ 5 31.10.2008 01:48
ошибка при работе со структурой msvc vvviperrr Общие вопросы C/C++ 0 07.05.2008 20:34