靜態資料成員在記憶體中只佔乙份空間。
每個物件都可以引用這個靜態資料成員。
靜態資料成員的值對所有物件都是一樣的。
如果改變它的值,則在各物件中這個資料成員的值都同時改變了。//靜態資料成員儲存在全域性資料區
在為物件所分配的空間中不包括靜態資料成員所佔的空間。
靜態資料成員不隨物件的建立而分配空間。(也就是就算沒有建立物件,這個靜態資料成員也存在)
靜態資料成員只能在類體外進行初始化:
資料型別 類名::靜態資料成員名=初值;// int a::a=3;
不能用引數初始化表對靜態資料成員進行初始化。(如果未賦值,自動賦0值)
靜態資料成員既可以通過物件名引用,也可以通過類名引用。
#include using namespace std;
class teacher
private:
static int b;
};int teacher::b = 3;
int main()
#include using namespace std;
class point
public:
int x;
int y;
static int z;
};int point::z = 3;
int main()
通過第一種方式訪問z,實際上在c++內部都會被轉換成第二種形式。
靜態成員函式的作用是為了能處理靜態資料成員,當呼叫乙個的成員函式,會把物件的位址賦給成員函式的this指標。靜態成員函式不屬於物件,所以它沒有this指標。因此也決定了靜態成員函式無法訪問非靜態成員。
類靜態成員和類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
類的靜態成員
類的靜態成員存在於任何物件之外,物件中不包含任何與靜態資料成員有關的資料。class account 對於account的每乙個物件豆漿包含owner和amount兩個資料成員,而對於靜態成員interestrate只有乙個,且被所有的物件共享。double r r account rate 2.使...
類的靜態成員
1,static靜態成員,靜態成員 變數 or 函式 可以是public or private,訪問許可權與普通 非static 成員一樣,受到限定符限制 2,靜態成員 變數 or 函式 不與任何物件繫結在一起,而是被所有物件共享 特別是靜態成員函式,它不包含this 指標引數 3.public靜態...