#include<iostream> class a {     virtual void f() = 0; }; class b : virtual a {     b() {} }; class c :virtual a {     virtual void f(); }; int main() {     std::cout << sizeof(a) << "\n" << sizeof(b) << "\n"<<sizeof(c)<<"\n"; } 改成这样之后输出的是 4 8 8 b里的有函数且又有虚函数会变成12,口胡一波,b里两个虚函数指针size 8,b本身有函数声明于是偏移量+1,对齐四位之后就是12了 另外:GCC出来size是4 4 4……
点赞 1

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务