быдлокодер
1719 / 906 / 106
Регистрация: 04.06.2008
Сообщений: 5,618
|
||||||
1 | ||||||
при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого!28.10.2011, 05:39. Просмотров 739. Ответов 4
Метки нет Все метки)
(
Друзья! Обнаружил пробел в знаниях. Собсно, вопрос в теме. Дополню лишь: поля объекта меняются на нужные значения и безо всякого возврата *this; чяднт?
0
|
|
28.10.2011, 05:39 | |
Когда нужно/не нужно возвращать объект при перегрузке присваивания?
Зачем при перегрузке оператора >> в параметр включать ссылку на объект, а не сам объект? При попытке создать объект obj=Server.CreateObject('Name.ClassName') Возникает ошибка, 'Объект не поддерживает это свойство или метод.' |
|
![]() 5813 / 3465 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
28.10.2011, 06:34 | 2 | |||||
Если возвращать экземпляр по значению, то можно использовать возвращаемое значение в составных конструкциях присваивания. А если возвращать по ссылке, то можно использовать возвращаемое значение еще и как l-value. Пример (обрати внимание на строку 52):
1
|
быдлокодер
1719 / 906 / 106
Регистрация: 04.06.2008
Сообщений: 5,618
|
|
28.10.2011, 06:38 [ТС] | 3 |
разобрался, а l-value это что?
0
|
![]() 5813 / 3465 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
28.10.2011, 06:48 | 4 | |||||
вот пример:
1
|
![]() 5041 / 3102 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
|
||||||
28.10.2011, 12:02 | 5 | |||||
Вы ведь имели ввиду оператор присваивания, правда?
Добавлено через 23 минуты kravam, вообще перегрузка операторов - это написание функций. Самых обычных функций, с почти теми же правилами, что применяются для функций. Единственное, на что смотрит компилятор - на арность (т.е. количество параметров). А выполнять эти функции могут что угодно и как угодно. Например, оператор сложения может принимать объекты двух разных классов и возвращать третий класс. А может вообще ничего не возвращать. Здесь вы вольны поступать, как вам захочется. Вот пример класса, в котором оператор * выполняет не те действия, которые теоретически должен выполнять оператор разыменования, однако так сделать в данном случае было достаточно удобно:
1
|
28.10.2011, 12:02 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове? Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект Нужна подсказка по коду. Одним из полей формы надо сделать объект генерик класса Почему при вызове функции она возвращает 4 значения, если должна возвращать 2
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |