struct A { virtual void m() {}; };
struct B : public A { int b; virtual void n() = 0; };
struct C : public B { int c1, c2; void o(); };
struct D : public C { virtual void n() {}; A d; };
< /code>
Я хочу получить что -то похожее на < /p>
A: 0 = (vptr)
B: 0 = (vptr)
4 = b
C: 0 = (vptr)
4 = b
8 = c1
12 = c2
D: 0 = (vptr)
4 = b
8 = c1
12 = c2
16 = d
< /code>
(-fdump-class-hierarchy
Есть ли флаг в G ++ или инструменты для сброса переменных элементов структуры/класса? Чтобы проиллюстрировать, рассмотрим такой исходный код < /p> [code]struct A { virtual void m() {}; }; struct B : public A { int b; virtual void n() = 0; }; struct C : public B { int c1, c2; void o(); }; struct D : public C { virtual void n() {}; A d; }; < /code> Я хочу получить что -то похожее на < /p> A: 0 = (vptr)
B: 0 = (vptr) 4 = b
C: 0 = (vptr) 4 = b 8 = c1 12 = c2
D: 0 = (vptr) 4 = b 8 = c1 12 = c2 16 = d < /code> (-fdump-class-hierarchy[/code] не работает. Он только печатает функции участника.) (предположим, что я не знаю классов A to d , или есть так много классов, что я не хочу их перечислять.) https://github.com/apple-oss-distribitions/xnu/blob/xnu-1456.1.26/iokit/iokit/iouserclient.h).