derive layout

https://www.cnblogs.com/pandamohist/p/13882020.html

 

 

 

#include "iostream"
struct B {
virtual void f() {}
uint64_t b;
};

struct C {
virtual void fc() {}
uint64_t c;
};

struct D : public B, public C{
virtual void fd() {}
uint64_t d;
};


int main(){
D d;
printf("%llx\t%llx\t%llx\t%llx\n", &d, &d.b, &d.c, &d.d);
std::cout << sizeof( B) <<'\t' << sizeof( C) <<'\t' << sizeof( D) <<'\n';
return 0;
}
posted @ 2023-03-14 18:53  zJanly  阅读(21)  评论(0)    收藏  举报