-
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
Następne wpisy z tego wątku
- 13.07.20 22:02 g...@g...com
- 14.07.20 12:01 g...@g...com
- 14.07.20 20:59 Maciej Sobczak
- 05.10.20 12:36 Sushi Master
Najnowsze wątki z tej grupy
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
Najnowsze wątki
- 2025-04-03 Gdynia => Sales Executive / KAM <=
- 2025-04-03 Gdańsk => PHP Developer <=
- 2025-04-03 Wydałem 300 zł za bezpłatne konto w Santander
- 2025-04-02 Wrocław => Key Account Manager (ERP) <=
- 2025-04-02 Zielona GĂłra => Konsultant wdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-04-02 Zielonka => Specjalista ds. public relations <=
- 2025-04-02 Gliwice => IT Expert (Network Systems area) <=
- 2025-04-02 Kraków => Spedytor Międzynarodowy <=
- 2025-04-02 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-04-02 Warszawa => Generative AI Engineer <=
- 2025-04-02 Szczecin => Key Account Manager IT <=
- 2025-04-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-04-02 Kraków => Business Development Manager - Network and Network Security
- 2025-04-02 Warszawa => Dyrektor Sprzedaży (rozwiązania Cloud) <=
- 2025-04-02 Warszawa => Sales Director (Cloud solutions) <=