-
Data: 2012-07-28 00:57:08
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 27/07/2012 11:18, AK wrote:
> Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał:
>
>> Nie wiem, co rozumiesz przez typy proste, ale parametrów przez
>> referencję (aka 'przez zmienną') nie można przekazać niezależnie od typu.
>> Możnqa przekazać parametr typu 'referencja na obiekt', ale przekazać
>> można ją tylko przez wartość. Zatem nie da się zrobić:
>>
>> Object a=cośtam();
>> [...]
>> f(a);
>> // funkcja f zmieniła wartość a, tak że wskazuje na inny obiekt niż
>> // przed wywołaniem
>
> 1. Naucz sie opisywac temat _poprawnie_ bo przekazywanie parametrow
> przez referencje to _nie jest to__ co opisujesz.
W C++ tak się to nazywa. Proszę o jakiegoś linka do opisu co to znaczy
przekazywanie przez referencję.
> 2. _Bardzo dobrze_, ze w Javie (w Pythonie zreszta tez) nie da sie tego
> zrobic.
> Juz sama zmiana stanu obiektu przekazywanego przez do funkcji przez
> (ref) referencje rodzi problemy i skutki uboczne,
Kolejna rzecz, której mi brakuje w Javie - const.
> a co dopiero gdyby sie sam obiekt zmienil brrr.... :) Do tego sluzy
Niedawno ktoś opisywał, że ma problemy z za długimi metodami. Części
tych metod możnaby wyobrębnić w osobne metody, ale problemem jest użycie
w tych częściach zmiennych lokalnych. Brak możliwości przekazania
zmiennych (typów referencyjnych czy jakichkolwiek innych) przez
referencję powoduje utrudnienie refektoryzacji typu 'extract method'.
> return i rzeczy typu 'tuple' (lub
> udajace tuple).
Nie ma zdaje się takiego czegoś w Javie.
> 3. Uda Ci sie w C++ osiagnac zamierzony efekt uzywajac tylko referencji
> (&) ?
Normalnie. Zacznijmy od tego, że najbliższym odpowiednikiem typu
referencyjnego z Javy jest w C++ wskaźnik, więc odpowiednikiem:
JakisTyp zmienna = new JakisTyp();
będzie w C++
JakisTyp* zmienna = new JakisTyp();
(może być shared_ptr albo unique_ptr)
więc jeśli funkcja f ma sygnaturę
f(JakisTyp*&);
to mam:
JakisTyp* a=cośtam();
[...]
f(a);
// a może wskazywać na coś innego niż przed wywołaniem f
Następne wpisy z tego wątku
- 28.07.12 00:59 Andrzej Jarzabek
- 28.07.12 13:09 yamma
- 28.07.12 16:27 Andrzej Jarzabek
- 30.07.12 10:18 Paweł Kierski
- 30.07.12 10:40 Edek Pienkowski
- 30.07.12 18:54 Waldek M.
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-05 Dziwny wymiar wyroku
- 2025-04-05 Prunt z dachu
- 2025-04-05 Taśma LED
- 2025-04-05 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-04-05 Warszawa => Strategic Account Manager <=
- 2025-04-05 co w Anglii dziś w Polsce za 30 lat
- 2025-04-05 Wrocław => SOC Tech Lead <=
- 2025-04-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-04-05 Wyrok dożywocia dla Polki
- 2025-04-04 Prezydium Sejmu Tuskiego orzekło: Poseł KO mecenas Roman Giertych NIE jest mordercą (w żadnym sensie tego słowa?)
- 2025-04-04 Reset komóry
- 2025-04-04 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-04-04 Zielonka => Key Account Manager IT <=
- 2025-04-04 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2025-04-04 Warszawa => Mid/Senior IT Recruiter <=