Typowanie statyczne i dynamiczne

0

Mam ten problem że gdy czytałem o typowaniu to natrafiłem też na nazywanie np typowania statycznego "typem statycznym" i tak samo z dynamicznym
jeśli mamy np. *pa = new B to wtedy pa jest typem dynamicznym?
Generalnie czy takie nazewnictwo(typowanie dynamiczne=typ dynamiczny) jest złe?

0

Nie mam pojęcia czym jest *pa, jeśli miało to być coś w stylu

A* pa = new B; // ohydna notacja wegierska

to pa jest obiektem typu A* (czyli wskaźnikiem na A), wskazującym na obiekt, którego dynamicznym typem jest B.

1

Moja rada zapomnij o takim podziale bo jest on tylko mylący/dezinformujący.
Trzymaj się tego że zmienna( wartość/data ) jest w pamięci stack, heap lub data.

6

A nie mylisz statycznego/dynamicznego typowania ze statyczną/dynamiczną alokacją pamięci? Bo różnica jak między piciem w szczawnicy a szczaniem w piwnicy...

1

Typowanie statyczne i dynamiczne

Odrzuć słowo "typowanie", bo dynamicznie tutaj tworzysz obiekty co najwyżej. Typowanie to co innego. Nie wiem czy w ogóle C++ istnieje coś takiego jak typowanie dynamiczne.

Typowanie dynamiczne jest wtedy, kiedy nie deklarujesz typu zmiennej, tylko masz jakąś zmienną i ma ona typ taki, jaki jej przypiszesz. Np. w Pythonie zmienne nie mają zadeklarowanych typów, tylko jak piszesz:

foo = 3

i w ten sposób dynamicznie "przypisujesz typ do zmiennej" poprzez to, że przypisałeś do niej wartość jakiegoś typu.

używając statycznego typowania musiałbyś napisać coś jak:

int foo = 3;

tj. musiałbyś zadeklarować, że jest to liczba.

natomiast w C++ jest zdaje się coś takiego jak auto ale nie wiem dokładnie jak to działa, czy można to nazwać typowaniem dynamicznym (czy może tylko statyczną inferencją?).

0

Podeślij artykuł, który wyjaśnia co to typ dynamiczny, bo jestem ciekaw.

3

Nie do końca rozumiem czemu czepiacie się dynamicznego typu. To standardowa nomenklatura w C++.

http://eel.is/c++draft/defns.dynamic.type

§ 1.3.7 dynamic type [defns.dynamic.type]
⟨glvalue⟩ type of the most derived object to which the glvalue refers
[ Example: If a pointer p whose static type is “pointer to class B” is pointing to an object of class D, derived from B, the dynamic type of the expression *p is “D”. References are treated similarly.  — end example ]

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0