2012-11-28 109 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)并不重要。

至于“类静态成员”之间的区别,函数也可以是“成员”,所以我想说的区别是“类静态对象”不包括函数。

就个人而言,我会使用“静态成员变量”和“静态成员函数”,而不是那个术语。