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

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

Войти
Регистрация
Восстановить пароль
 
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

09.11.2012, 13:35. Просмотров 371. Ответов 3
Метки нет (Все метки)

Есть перечисление и функция :

C++
1
2
3
4
5
6
7
8
9
10
enum Num {
    on, tw, th, fo ,fi, si ,se, ei, ni ,last
};
 
Num wl(on);
 
Num operator++(Num& obj) {
    obj = (obj==last) ? on : Num(obj+1); // Что значит  Num(obj+1); ??? Почему нельзя  написать
    return obj;                                    // прочто obj+1   ????
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 13:35     перегрузка операторов
Посмотрите здесь:

Перегрузка операторов C++
C++ перегрузка операторов
Перегрузка операторов C++
Перегрузка операторов C++
Перегрузка операторов с++ C++
C++ Перегрузка операторов
C++ Перегрузка операторов
Перегрузка операторов C++
Перегрузка операторов +=, -=, *= C++
C++ Перегрузка операторов
C++ Перегрузка операторов
C++ Перегрузка операторов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
09.11.2012, 13:46     перегрузка операторов #2
Потому что при операции obj + 1 происходить пртиведение типа результата к int и его нельза присвоить переменной obj, которая имеет тип Num. Поэтому используеться явное приведение типа Num(obj + 1)!
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
09.11.2012, 14:00  [ТС]     перегрузка операторов #3
Цитата Сообщение от D.E.S.P.E.R.O. Посмотреть сообщение
Потому что при операции obj + 1 происходить пртиведение типа результата к int и его нельза присвоить переменной obj, которая имеет тип Num. Поэтому используеться явное приведение типа Num(obj + 1)!
C++
1
Num(obj+1);  и (Num)obj+1;
Это все одна и таже запись ???
Приведение типов всегда писал по второму варианту
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
09.11.2012, 14:03     перегрузка операторов #4
Да это все один и тот же вариант, что есть приведением типов в стиле языка С. Если пишете на С++, то лучше и правильнее использовать static_cast<Num>(obj + 1)!
Yandex
Объявления
09.11.2012, 14:03     перегрузка операторов
Ответ Создать тему
Опции темы

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