Informacje dotyczące ułożenia obiektów w pamięci

0

Cześć,
Szukam książki/strony internetowej w której opisane byłoby dokładnie ułożenie obiektów w pamięci. Trudno mi wyjaśnić słowami, więc dam przykład:

class Base {
  int x;
public: 
  virtual ~Base() {}
};
class Der : public Base {
public:
  virtual ~Der(){}
  virtual void x() {}
};

Der x; Base y;

Chciałbym doczytać, jak w pamięci ułożone są te obiekty, jak wygląda to w przypadku dziedziczenia wielobazowego, wirtualnego itp. Niestety, nawet nie wiem jak powinienem sprecyzować zapytanie do wyszukiwarki, więc nie bardzo mogę jej użyć.

Z góry bardzo dziękuję za odsyłacze do interesujących materiałów
Pozdrawiam

0

a po co Ci to?

0
fasadin napisał(a):

a po co Ci to?

po prostu chciałbym się dokształcić :)

1

Scott Meyers "More Effective C++". Item 24.

0
twonek napisał(a):

Scott Meyers "More Effective C++". Item 24.

Tego właśnie szukałem! Dziękuję bardzo, mile widziane jeszcze dodatkowe tytuły, chyba że ten w pełni wyczerpuje temat ;)

1

Taki GCC pod Windows i Visual C++ zachowują się różnie w niektórych przypadkach, więc nie należy na tym specjalnie polegać.
Ale wiedzieć warto, jakie są typowe rozwiązania.

0
Azarien napisał(a):

Taki GCC pod Windows i Visual C++ zachowują się różnie w niektórych przypadkach, więc nie należy na tym specjalnie polegać.
Ale wiedzieć warto, jakie są typowe rozwiązania.

A czy jest jakiś dokument dla Visual C++ który mówi o tym, jak jest to zaimplementowane w tym konkretnym kompilatorze?

1

Tak, jest /d1reportSingleClassLayout i /d1reportAllClassLayout

0

Warto też mieć na uwadze takie kwestie że na przykład pola bitowe w różnych kompilatorach są w różny sposób wyrównywane. Kiedyś sie na to naciąłem ;]

0
cppdeveloper napisał(a):

A czy jest jakiś dokument dla Visual C++ który mówi o tym, jak jest to zaimplementowane w tym konkretnym kompilatorze?

http://www.openrce.org/articles/files/jangrayhood.pdf

A czy tak jest ciągle to trzeba sprawdzić w jakimś disassemblerze :P

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