首页 > 其他 > 详细

无数据成员类的 sizeof 大小一题

时间:2015-01-05 09:24:33      阅读:125      评论:0      收藏:0      [点我收藏+]

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、答案

1
4
4

 

3、析

1)无虚函数且无数据成员,类的sizeof大小为1

2)有虚函数且无数据成员,类的sizeof大小为4,有虚函数类内有指针

无数据成员类的 sizeof 大小一题

原文:http://www.cnblogs.com/aqing1987/p/4202706.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!