eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingC is number one (znowu) › Re: C is number one (znowu)
  • Data: 2020-07-13 20:49:12
    Temat: Re: C is number one (znowu)
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > > Wytłumacz mi teraz, dlaczego "smart pointer" to nie jest "pointer".
    >
    > Jeśli chcesz dyskutować o tym, czy rower stacjonarny to też rower,
    [...]

    To poszukam na grupie rowerowej.
    Natomiast tutaj pytałem o to, dlaczego smart pointer nie jest pointerem, bo zdaje się
    tak właśnie to określiłeś.

    > "Unlike C, C++, or Pascal, there is no explicit representation of pointers in Java.
    [...]

    A coś o smart pointerach tam jest?

    > "[...] reference is often erroneously confused with a pointer or address, and is
    said to "point to" the data. However, a reference may also be implemented in other
    ways [...]"

    Świetnie. Ale na stronie o pointerach jest, że to taki obiekt, który *zawiera* (ang.
    "stores") adres pamięci. Więc smart pointer, który *zawiera* adres, to według tej
    definicji pointer.
    Zgadzamy się?

    I czy różnica pomiędzy wskażnikiem a referencją sprowadza się do tego, że "may be
    implemented in other ways"? To słabo. Bo te pojęcia to są koncepty i nie powinno się
    ich uzależniać od tego, jak są zaimplementowane. Bo jeden język może mieć różne
    implementacje (łącznie z tak odległymi, jak interpreter vs. kompilator) i trochę
    głupio by było twierdzić, że w jednej Javie jest referencja a w drugiej Javie jest
    wskaźnik, podczas gdy dokładnie ten sam kod źródłowy robi to samo w obu Javach.

    Więc jak to jest? Kiedy jest wskaźnik a kiedy referencja?

    Aby wyjść do przodu z tą dyskusją, chętnie podrzucę, że to co w C++ jest nazywane
    referencją, bardziej zasługuje na nazwę alias. Wtedy oczyścimy pole do bardziej
    wyrafinowanego rozróżnienia pomiędzy wskaźnikiem a referencją. W szczególności
    zarówno jedno jak i drugie można skopiować, zachować lub przekazać. Ale czym się
    różnią?

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: