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

operator= - C++

Восстановить пароль Регистрация
 
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
20.06.2012, 11:38     operator= #1
Такой вопрос.
Есть объект. Хочу чтобы при присваивании его к чеслу выдавалось число.
Например.
C++
1
2
3
4
5
6
7
8
9
10
11
class MyClass
{
short MyClass::operator=(const MyClass&My) {return 12;};
};
 
Main()
{
MyClass MyClass1;
 
short MyShort = MyClass1;
};
Вот чтоб последняя строка отрабатывала правильно. Видимо я оператор присвавания прописал не верно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 11:38     operator=
Посмотрите здесь:

C++ operator
operator< C++
C++ operator[]
operator char() или operator int() C++
operator() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
20.06.2012, 11:58     operator= #2
Угу, возвращаемое значение в операторе нужно для записи:
a = b = c; т.е. в a присвоится то, что вернет оператор присваивания b = c;
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
20.06.2012, 11:59  [ТС]     operator= #3
ну а наглядней можно?
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
20.06.2012, 12:11     operator= #4
Короче. Скорее всего тебе поможет перегрузка преобразования типа.
C++
1
2
3
4
5
6
7
class MyClass
{
   operator short( void )
  {
     return 12;
  }
};
Добавлено через 3 минуты
А оператор присваивания используется тока для переменных одного типа, т.е. MyClass = MyClass, но никак не short = MyCLass. Вот если написать оператор приведения к типу, то последнее будет верно.
Андрей2011
29 / 23 / 2
Регистрация: 18.01.2011
Сообщений: 359
20.06.2012, 12:19  [ТС]     operator= #5
Ура! спасибо!
Yandex
Объявления
20.06.2012, 12:19     operator=
Ответ Создать тему
Опции темы

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