2012-11-28 107 views
0

我已經運行了整個術語類靜態對象多次沒有代碼或上下文來澄清,如果這是作者的術語我不知道或只是另一個術語類(範圍)靜態成員(變量或函數)請澄清術語類靜態對象(vs類靜態成員)

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; 
+2

下次請演講者澄清。我不認爲這是一個常用術語,但我認爲它是指靜態數據成員(原始或用戶定義的類型),而不是靜態成員函數。 – Mat

+0

我見過的這個術語中最常見的用法對於具有受保護或私有構造函數的同一類類型的靜態類成員來說是有效的,以防止外部構造。我通常只看到它在單身班(我根本不是一個粉絲)。教練需要用一個例子來闡明。 – WhozCraig

+0

墊/克雷格 - 沒有「揚聲器」或「教練」要問。我在我的文章中提到「作者」,指的是沒有機會提問,評論或以其他方式互動的許多不同文章(包括幻燈片演示文稿)。 – Arbalest

回答

1

我會認爲這兩種情況都是指「類靜態對象」。一個對象只是一個佔用內存的實體,它不是一個函數,所以它是否是用戶定義類型(UDT)並不重要。

至於「類靜態成員」之間的區別,函數也可以是「成員」,所以我想說的區別是「類靜態對象」不包括函數。

就個人而言,我會使用「靜態成員變量」和「靜態成員函數」,而不是那個術語。