eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne?Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • Data: 2013-02-07 01:12:47
    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 06/02/2013 23:47, M.M. wrote:
    > W dniu środa, 6 lutego 2013 23:57:44 UTC+1 użytkownik Andrzej Jarzabek napisał:
    >
    >> Ale język nie potrafi ci tego obsłużyć. Nie możesz na takim wkaźniku
    >> napisać (p->foo), co by znaczyło "popatrz na tego inta i w zależności od
    >> tego, co nam mówi o tym, co jest w dalszej części struktury albo daj mi
    >> składową o nazwie foo, albo zgłoś błąd".
    > Język oczywiście nie, można taką funkcjonalność uzyskać przez użycie
    > biblioteki. Można użyć jakiejś HashMapy na stringu i klasie abstrakcyjnej,
    > albo na typie Variant. Nie wydaje się to gorsze od pola dodanego do
    > obiektu w trakcie wykonania programu.

    No ale nie możesz w ten sposób wstawić dowolnej struktury czy mapy.

    >> I można sensownie przypisać wartość dowolnego typu do zmiennej klasy
    >> Variant?
    > Nie wiem co znaczy sensownie. Wczoraj do Variant przypisywałem
    > Pixmapę z obrazkiem. Jak na razie nie narzekam na brak funkcjonalności.

    Możesz przypisać boost::function<int(int)>?

    >> Źle pamiętasz.
    > Faktycznie nie da się tego łatwo osiągnąć. Ale jakieś ClassLoadery na
    > podstawie XMLa albo tabeli w bazie danych to chyba są do Javy?

    Nigdy się nie spotkałem, zresztą byłoby to mało wygodne, bo byś się
    musiał dziubdziać przez refleksję właśnie zamiast normalnie używać metod
    i pól przy użyciu składni języka.

    >> Wygodne bywa to, że zmienne w ogóle nie mają żadnego typu, a mogą
    >> trzymać wartości typu dowolnego. To samo z funkcjami - nie mają
    >> zadeklarowanego typu, a mogą zwrócić wartość dowolnego typu.
    > No właśnie bardzo podobną wygodę obserwuję w C++ gdy używam
    > typu Variant albo funkcji wirtualnych.

    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. Żeby zrobić coś więcej
    musisz sobie przerzutować, a żeby przerzutować musisz dokładnie
    wiedzieć, na co chcesz rzutować.

    > Tutaj znowu ten argument z HashMapą indeksowaną stringiem. Chyba podobna
    > wygoda? W PHP mam obiekt->pole, w C++ mam obiekt['pole'].

    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'.

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: