码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-01-05 09:27:11      阅读:227      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!