0

クラス静的オブジェクトという用語にコードやコンテキストなしで何度も出くわして、これが私が知らない何かに対する著者の用語なのか、それともクラス (スコープ) 静的メンバー (変数または関数)の単なる別の用語なのかを明確にしました。 .

class m1 {
public:
    static int x;
};

// with x being the "class static "object"
// which I just call a "class static member".
int m1::x;

それとも、この用語は、実際にはユーザー定義オブジェクトであるメンバー変数にのみ適用されますか?

class m2 {
public:
    int y;
};

class m3 {
public:
    static m2 z;
};

// with z really being an object - the "class static object"?
m2 m3::z;
4

1 に答える 1

1

どちらの場合も「クラス静的オブジェクト」を参照していると考えます。オブジェクトは、関数ではない単なるメモリを占有するエンティティであるため、ユーザー定義型 (UDT) であるかどうかは関係ありません。

「クラスの静的メンバー」との違いは、関数も「メンバー」になれるので、「クラスの静的オブジェクト」には関数が含まれないという違いです。

個人的には、その用語ではなく、「静的メンバー変数」と「静的メンバー関数」を使用します。

于 2012-11-28T05:21:22.253 に答える