Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Ф-ции присваиваем значение. |

18.08.2008, 14:25
|
|
Участник форума
Регистрация: 25.11.2007
Сообщений: 119
Провел на форуме: 565921
Репутация:
88
|
|
Ф-ции присваиваем значение.
Привет всем. Вот недавно вкуривал новое СадоМазо в С++. Вкурил то, что ф-ции присвоил значение. Перейду сразу к сорцу =)
Код:
#include <iostream>
using namespace std;
int x;
int& func(){
return x;
}
void main(){
int f=5;
x=4;
cout<<"x="<<x<<"\nfunc()="<<func();
func()=f;
cout<<"\n\nx="<<x<<"\nfunc()="<<func()<<endl;
}
Смысл здесь такой: если ф-ция возвращает значения ввиде ссылки, то компилятор интерпритирует её как переменную.
Если ктото ещё подобные вещи знает, отписывайте 
Последний раз редактировалось xGOR; 18.08.2008 в 17:18..
|
|
|

21.08.2008, 14:08
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
как, я понял, а я всегда плохо понимаю, ты хочеш, чтобы функция вернула тебе значение x? Ты хочешь, чтобы значение x изменялось, функцией на значение f? Тогда всё правильно.
Последний раз редактировалось ronald; 21.08.2008 в 14:12..
|
|
|

21.08.2008, 14:18
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
 Тэк-с, мне не давал покоя ммой корявый пост, разъясняю подробно:
func() возвращает значение x,
следовательно func=x,
ты передаешь функции значение f(было бы правильнее) func(x), на мой взгляд,
тогда функция изменяет значение x на значение f и выдаёт. Исправьте меня если ошибся, я ещё малёк в с++ 
P.S:если помог, то плюсы в студию))
|
|
|

21.08.2008, 14:20
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
& убери)))
|
|
|

21.08.2008, 16:21
|
|
Новичок
Регистрация: 20.08.2008
Сообщений: 2
Провел на форуме: 30695
Репутация:
0
|
|
Нет, здесь просто используется ссылка на int&. Ничего особенного в этом коде я не вижу, в стандартных классах это сплошь и рядом (std::vector<T>::at(size_t), std::vector<T>:  perator[](size_t)).
Просто чтобы понять это, можно интерпретировать ссылку как саморазыменовывающийся указатель, никакого садомазо, все очевидно.
|
|
|

21.08.2008, 16:40
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
ок, недопонел. Eee7-смерть клавиатуры и монитора, сидеть максимум десять минут и идти блевать)))))
|
|
|

21.08.2008, 16:45
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Простое жонглирование именем переменной и адресом. На практике может быть источником весьма неприятных ошибок.
return *this в С++ очень близок по функциональности, когда используется в &operator = или же &operator +
По сути автор и реализовал тот самый operator=(int f) только в извращенном виде.
|
|
|

21.08.2008, 17:35
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 278
Провел на форуме: 2805600
Репутация:
660
|
|
аффтор ты гониш!
че ж тут знать о присвоении
нафиг такую ерунду писать?О_о
это в каждом учебнике имеется в первых главах ))
жжошь))
|
|
|

22.08.2008, 12:12
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
Это был один из моих первых опытов на С++ (присвоение переменной значение) вообще никому нах не нужна эта вещь
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|