Zastanawiam się, w jaki sposób statyczne zmienne składowe są zwykle implementowane w językach takich jak C++ i czy ich użycie wpływa na rozmiar instancji obiektów.W jaki sposób statyczne zmienne składowe wpływają na rozmiar obiektu?
Wiem, że statyczne elementy są współużytkowane przez wszystkie wystąpienia tej klasy, ale w jaki sposób są udostępniane? Jeśli ma wpływ na rozmiar obiektu, czy 10 zmiennych statycznych zwiększy rozmiar o 1?
Pytam bo mogę pomyśleć dwa sposoby to może być realizowane:
- dodając wskaźnik do danych statycznych dla każdego obiektu w podobny sposób niektóre implementacje dodać wskaźnik do tablicy funkcji wirtualnych
- danych statycznych jest właśnie odniesione bezpośrednio jak zmiennej globalnej z offsetu jest rozwiązany przez linker/loader
Jest to rodzaj pytania, które można łatwo sprawdzić samodzielnie. Po prostu utwórz odpowiednie klasy i wykonaj sizeof (T), aby dowiedzieć się, jak duże są. –
@Martin York: AFAIK, nie ma operatora sizeof w Javie. –
[w-java-jaki-jest-najlepszy-sposób-określić-rozmiar-obiektu-obiektu] (http://stackoverflow.com/questions/52353/in-java-what-is -najlepszy-sposób-określić-rozmiaru-obiektu) –