0

int Test::i;は何をしますか? 以下のプログラムで行います。誰か説明してください

// Assume that integers take 4 bytes.
#include<iostream>

using namespace std;   

class Test
{
  static int i;
  int j;
};

int Test::i;

int main()
{
    cout << sizeof(Test);
    return 0;
}
4

3 に答える 3

2

staticこれは、クラスのメンバーを定義するための構文です。に初期化Test::i0ます。

それに別の値を与えるには、次のことができます

int Tent::i = 42;
于 2012-12-06T06:47:53.623 に答える
2
int Test::i;

デフォルトで初期化するiクラスの静的メンバーを定義します。Test0

static int i;

メンバーを宣言するだけで、i定義はしません。定義を個別に配置する必要があります。

于 2012-12-06T06:52:21.190 に答える
0

問題の行は、クラス Test の静的変数 i を定義 (インスタンス化) し、デフォルト値ゼロに初期化します。

このプログラムは、型クラス Test のオブジェクトのサイズを書き出します。これは、int "j" のバイト単位のサイズです。数はプラットフォームに依存します。32 ビット Windows プログラムは 4 を書き込みます。変数 "i" は、クラス Test のオブジェクトのメンバーではなく、"静的メンバー" であるため、この変数には入りません。クラス Test の名前空間を介してのみアクセスできます。

于 2012-12-06T07:02:51.630 に答える