-
Data: 2013-02-07 02:09:28
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 07/02/2013 00:36, M.M. wrote:
> W dniu czwartek, 7 lutego 2013 01:12:47 UTC+1 użytkownik Andrzej Jarzabek napisał:
>> No ale nie możesz w ten sposób wstawić dowolnej struktury czy mapy.
> Jak na razie wstawiam dowolne potrzebne.
>
>> Możesz przypisać boost::function<int(int)>?
> Czy to na pewno jest potrzebne, albo chociaż zapewnia w jakimś
> przypadku wygodę?
A więc nie moższ.
>> Nie ma tej wygody, bo na zmiennej typu Variant możesz wywoływać tylko
>> mettody typu Variant - czyli żadnych użytecznych dla danych, na których
>> faktycznie chcesz wykonywać jakieś operacje.
> Nie wiem o jaką użyteczność chodzi, ale może to by załatwiała metoda
> wirtualna?
Variant policz_cene(Variant transakcja)
{
return transakcja.kwota * kurs_walut(transkacja.waluta,
moja_waluta);
}
W tym momencie piszę algorytm liczący kwotę, jakimi typami są
transakcje, kwoty i waluty jeszcze nie zdecydowałem, zresztą mogę to
wiele razy refaktoryzować. Może transakcja będzie konstruowana z
elementu XML, który ma podelementy 'kwota' i 'waluta'.
>> Żeby zrobić coś więcej
>> musisz sobie przerzutować, a żeby przerzutować musisz dokładnie
>> wiedzieć, na co chcesz rzutować.
> Nie trzeba wiedzieć aż tak dokładnie, wystarczy rzutować na klasę z
> czystą metodą wirtualną, zwykle na tą najwyższą w hierarchii dziedziczenia.
Wystarczy, żeby powodować niewygodę. Bo tak czy inaczej musisz w tym
momencie zdefiniować odpowiednie typy.
>> Nie możesz mieć tego samego kodu, który zadziała zarówno na hashmapie z
>> elementem o nazwie 'pole' jak i na obiekcie typu (klasy) mającego pole o
>> nazwie 'pole'.
> O jakie różnice chodzi?
struct A
{
def pole
def polozenie
[...]
}
struct B
{
def pole = 0
}
var c = parse_xml('<root><pole>31</pole></root>')
fun foo(p)
{
return (p.pole)/2
}
foo(new A)
foo(new B)
foo(c)
Następne wpisy z tego wątku
- 07.02.13 06:05 Roman W
- 07.02.13 08:35 firr kenobi
- 07.02.13 08:50 AK
- 07.02.13 08:53 AK
- 07.02.13 09:12 AK
- 07.02.13 09:59 Maciej Sobczak
- 07.02.13 09:53 Sebastian Kaliszewski
- 07.02.13 10:10 Stachu 'Dozzie' K.
- 07.02.13 10:12 Maciej Sobczak
- 07.02.13 10:17 Stachu 'Dozzie' K.
- 07.02.13 10:20 Stachu 'Dozzie' K.
- 07.02.13 10:34 Maciej Sobczak
- 07.02.13 13:24 M.M.
- 07.02.13 23:07 Andrzej Jarzabek
- 07.02.13 23:51 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "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
Najnowsze wątki
- 2025-05-12 Rzeszów => WEBCON Developer <=
- 2025-05-12 kamerka kultowy novatek G1WH
- 2025-05-12 Warszawa => Fullstack PHP Developer <=
- 2025-05-12 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-12 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-05-12 Kraków => NMS System Administrator <=
- 2025-05-12 Warszawa => Account Manager - Sprzedaż Usług Rekrutacyjnych <=
- 2025-05-12 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-12 Warszawa => Junior Rekruter <=
- 2025-05-12 Białystok => Programista Mainframe (z/OS, Assembler) <=
- 2025-05-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-05-12 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-05-12 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-05-12 Warszawa => Spedytor Międzynarodowy <=
- 2025-05-12 kolizja na chodniku nie ma odszkodowania