空类也会实例化,为保证空类实例化后的独一无二性,编译器会给空类隐含的添加一个字节。所以,空类的sizeof为1,而不是0. 2、继承关系中的类大小: case 1: 父类有虚函数,子类继承。 classA{virtualvoidf(){} };classB:publicA{} 此时,类A和类B都不是空类,其sizeof都是4,因为它们都具有虚函数表的地...
空类被实例化时,会由编译器隐含的添加一个字节。所以空类的size为1。 2.虚函数 classA {virtualvoidFuncA(); virtualvoidFuncB(); }; 得到结果:4 当C++ 类中有虚函数的时候,会有一个指向虚函数表的指针(vptr),在32位系统分配指针大小为4字节。所以size为4. 3.静态数据成员 classA {inta;staticintb;...
TestStruct1 st1;cout << sizeof(st1);000A284Fmovesi,esp000A2851push1000A2853movecx,dword ptrds:[000AD0CCh]000A2859calldword ptrds:[000AD09Ch]000A285Fcmpesi,esp000A2861call000A12F3 会发现生成st1实例的时候没有任何操作,在打印实例大小的时候直接把1传入打印函数。 TestStruct1 *st=newTestStru...
classF//虚函数会占用一个指针大小的内存,系统需要用这个指针维护虚函数表。大小为8 { public: virtualvoidprint(){cout<<"F"<<endl;} private: inta; }; classG:publicF//多了一个虚函数内存大小不变,可见一个类只有一个虚函数指针。大小为8 { public: virtualvoidprint(){cout<<"G"<<endl;} virtua...
项目: 选一个说,扩展提问 八股: 多态 构造函数析构函数能不能是虚函数 空类的大小是多少 为什么要内存对齐 tcp和udp的差异 CPU和GPU渲染管线 做道题: 合并k个有序链表 其他: 能实习多久 玩过什么游戏 二面45min: 项目相关: 深挖项目提到的技术点具体有什么用 ...