Просмотр полной версии : Ф-ции присваиваем значение.
Привет всем. Вот недавно вкуривал новое СадоМазо в С++. Вкурил то, что ф-ции присвоил значение. Перейду сразу к сорцу =)
#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;
}
Смысл здесь такой: если ф-ция возвращает значения ввиде ссылки, то компилятор интерпритирует её как переменную.
Если ктото ещё подобные вещи знает, отписывайте ;)
как, я понял, а я всегда плохо понимаю, ты хочеш, чтобы функция вернула тебе значение x? Ты хочешь, чтобы значение x изменялось, функцией на значение f? Тогда всё правильно.
:) Тэк-с, мне не давал покоя ммой корявый пост, разъясняю подробно:
func() возвращает значение x,
следовательно func=x,
ты передаешь функции значение f(было бы правильнее) func(x), на мой взгляд,
тогда функция изменяет значение x на значение f и выдаёт. Исправьте меня если ошибся, я ещё малёк в с++ :)
P.S:если помог, то плюсы в студию))
Mystic.asm
21.08.2008, 16:21
Нет, здесь просто используется ссылка на int&. Ничего особенного в этом коде я не вижу, в стандартных классах это сплошь и рядом (std::vector<T>::at(size_t), std::vector<T>::operator[](size_t)).
Просто чтобы понять это, можно интерпретировать ссылку как саморазыменовывающийся указатель, никакого садомазо, все очевидно.
ок, недопонел. Eee7-смерть клавиатуры и монитора, сидеть максимум десять минут и идти блевать)))))
Простое жонглирование именем переменной и адресом. На практике может быть источником весьма неприятных ошибок.
return *this в С++ очень близок по функциональности, когда используется в &operator = или же &operator +
По сути автор и реализовал тот самый operator=(int f) только в извращенном виде.
[Y.P.C.]yla
21.08.2008, 17:35
аффтор ты гониш!
че ж тут знать о присвоении
нафиг такую ерунду писать?О_о
это в каждом учебнике имеется в первых главах ))
жжошь))
Это был один из моих первых опытов на С++ (присвоение переменной значение) вообще никому нах не нужна эта вещь
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot