Cześć :)
Załóżmy taką sytuację:
if( obietk1 = funkcja_zwracająca_obietk_1 )
Czy dobrze myślę, że:
Tu będzie się to odbywać tak:
Ponieważ zdefiniowany operator= zwraca referencję na obiekt to w zależności od tego co jest po prawej stronie będzie to wglądało tak:
Jeżeli prawa strona jest NULL to warunek fałszywy.
else true;
Jeżeli nie jest tak, proszę mnie nakierować ;)
- Rejestracja:prawie 11 lat
- Ostatnio:prawie 9 lat
- Postów:199
0

gośćabc
http://ideone.com/CAeoX6 pomyśl o takim designie

- Rejestracja:prawie 12 lat
- Ostatnio:4 dni
1
bar = foo()
->
if(bar)
->
if((bar = foo())!=null)
->
if(bar = foo())
edytowany 1x, ostatnio: spartanPAGE

- Rejestracja:prawie 12 lat
- Ostatnio:4 dni
1
Po przypisaniu nie ma lewej, czy prawej. Jest wartość*.
*w uproszczeniu
edytowany 1x, ostatnio: spartanPAGE

- Rejestracja:ponad 21 lat
- Ostatnio:dzień
0
po przypisaniu zostaje ci to, co zwraca operator przypisania. normalnie powinien zwracać referencję do zmiennej z lewej strony przypisania. (jest to już po przypisaniu, więc jej wartość powinna wynosić tyle co prawa strona).
ale operator=
może (nie powinien) zwracać cokolwiek, nawet void
. wtedy nie da się użyć składni if (a=b)
.
edytowany 1x, ostatnio: Azarien
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.