首页 > 代码库 > 无数据成员类的 sizeof 大小一题
无数据成员类的 sizeof 大小一题
1、问题描述
写出代码中sizeof的结果
#include <iostream>#include <complex>using namespace std;class A1 { A1() {} ~A1() {}};class Base {public: Base () { cout << "base-ctor" << endl; } ~Base () { cout << "base-dtor" << endl; } virtual void f(int) { cout << "Base::f(int)" << endl; } virtual void f(double) { cout << "Base::f(double)" << endl; }};class Derived: public Base {public: Derived () { cout << "Derived-ctor" << endl; } ~Derived () { cout << "Derived-dtor" << endl; } void f(complex<double>) { cout << "Derived::f(complex)" << endl; }};int main(){ Base b; Derived d; cout << sizeof(A1) << endl; cout << sizeof(Base) << endl; // A. 4 B. 32 C. 20 D. platform-dependent cout << sizeof(Derived) << endl; // A. 4 B. 8 C. 36 D. platform-dependent return 0;}
2、答案
144
3、析
1)无虚函数且无数据成员,类的sizeof大小为1
2)有虚函数且无数据成员,类的sizeof大小为4,有虚函数类内有指针
无数据成员类的 sizeof 大小一题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。