Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Logika przeciazania operatorow

Ostatnio zmodyfikowano 2012-10-05 21:29
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
» 2012-10-05 21:02:58
dziwne jest troche zwracanie referencji np w takim przypadku:

C/C++
int & funkcja( int k )
{
    return k;
}

int main()
{
    int * a = new int;
   
    a = funkcja( a ); //Dlaczego to nie zadziala ?
    a = & funkcja( a ); // A to tak ? Przeiciez zwracam juz referencje
}
P-66127
DejaVu
» 2012-10-05 21:10:08
To nie jest dziwne. Zauważ, że Twoja zmienna w funkcji, która jest argumentem jest zmienną TYMCZASOWĄ, więc zwracasz referencję na coś co przestaje istnieć. Nie znam przypadku w którym zwrócenie adresu zmiennej by się nie powiodło - co innego przypisywanie wartości do czegoś co już nie istnieje.

/edit:
Poza tym nie można przypisywać wartości do zmiennej zadeklarowanej jako wskaźnik na wartość.

PS. Nie zbaczajmy z tematu, bowiem ta dyskusja nie dotyczy już operatorów.
P-66128
cyklopek11
» 2012-10-05 21:15:20
C/C++
a = funkcja( a ); //Dlaczego to nie zadziala ? --> bo chcesz do wskaźnika na inty przypisać referencje do zmiennej typu int

a = & funkcja( a ); // --> to dziala funkcja ma zwracac referencje, dodatkowo pobierasz sobie adres, ale nie referencji tylko tego, do czego jest to referencja .

Tak prawidłowo jakbyś chciał zwrócić referencję do czegoś rozsądnego to mógłbyś zrobić tak/:
C/C++
int & funkcja( int & k )
{
    return k;
}

Diego997, Mrovqa sorki za wczorajszy "STATIC", palnąłem jak łysy grzywką o parapet :-)
P-66129
DejaVu
» 2012-10-05 21:20:47
Czyli
C/C++
int & funkcja( int & k )
{
    k += 123;
    return k;
}
Wówczas będziesz mógł napisać:
C/C++
int a = 0;
printf( "a = %d\n", a );
printf( "wynik funkcji = %d\n", funkcja( a ) );
printf( "a = %d\n", a );
P-66130
diego997
Temat założony przez niniejszego użytkownika
» 2012-10-05 21:29:36
ok dzieki czyli sens zwracania referencji jest tylko wtedy kiedy pobieramy tez referencje. Mam nadzieje ze to rozumie, dzieki za wytlumaczenie i sory za zboczenie z tematu.
P-66132
1 « 2 »
Poprzednia strona Strona 2 z 2