C++オブジェクトのデータメンバー記憶領域占有計算

1367 ワード

空のクラスストレージスペースの計算
1コード
#include
using namespace std;
class CBox{
};
int main(){
    CBox boxobj;
    cout<

2運転
[root@localhost charpter02]# g++ 0214.cpp -o 0214
[root@localhost charpter02]# ./0214
1

3説明
空クラスCBoxは、データメンバーもメンバー関数もありません.プログラム実行結果は、そのサイズが1であることを示す.
空のタイプのオブジェクトには情報は含まれません.サイズは0です.ただし、オブジェクトを宣言するときは、メモリに一定のスペースを占有する必要があります.そうしないと、これらのオブジェクトは使用できません.メモリの消費量は、コンパイラによって決まります.C++の各空のタイプのインスタンスは1 Byte空間を占めている.
二メンバー変数のみのクラスのストレージ空間の計算
1コード
#include
using namespace std;
class CBox{
    int length,width,height;
};
int main(){
    CBox boxobj;
    cout<

2運転
[root@localhost charpter02]# g++ 0215.cpp -o 0215
[root@localhost charpter02]# ./0215
12

3つのメンバー変数と静的メンバー変数のクラスの記憶空間の計算
1コード
#include
using namespace std;
class CBox{
    int length,width,height;
    static int count;
};
int main(){
    CBox boxobj;
    cout<

2運転
[root@localhost charpter02]# g++ 0216.cpp -o 0216
[root@localhost charpter02]# ./0216
12

3説明
この例は、前の例よりも静的メンバー変数が1つ多くなったが、プログラム実行結果は12であり、静的データメンバーがオブジェクトのメモリ領域を占めていないことを証明した.