C 靜態成員與常成員

2021-12-30 02:50:35 字數 1314 閱讀 1043

對於非靜態成員,乙個類的每個物件都自己存有乙個副本,每個物件根據自己擁有的非靜態的資料成員來區別於其他物件。而靜態成員則解決了同乙個類的多個物件之間資料和函式的共享問題。

靜態資料成員的作用是:實現同一類的不同物件之間的資料共享。

#include

using namespace std;

class point

void display() //輸出類點的座標和此類例項化的物件的個數

static void display(point&p); //宣告靜態成員函式

private:

int x,y,z;

static int count; //宣告靜態的資料成員

};void point::display(point& p) //將display宣告為靜態成員函式,因此必須通過引數p來訪問非靜態成員x,y,z。

private:

int x,y;

}; const a a(1,2); //a為常物件,不能被更新。

注意:常物件在定義時必須初始化。

由於常物件不能被更新,因此,在將乙個物件說明為常物件後,通過這個常物件只能呼叫它的常成員函式,而不能呼叫其他成員函式。

也就是說,常成員函式是不修改物件的。

例如:#include

需要注意的是:

const關鍵字可以用於參與對過載函式的區分,過載的原則是:常物件呼叫常函式,一般物件呼叫一般成員函式。

常資料成員與一般變數定義相同,只是它的定義必須出現在類體中。

常資料成員的初始化只能通過建構函式的成員初始化列表顯示進行。

從大的方面來說,靜態成員是為類以及類所建立的物件進行資料的共享所使用的,但是為了消除資料共享過程中的不安全的因素,對某些需要防止改變的資料又進行了一層更嚴格的管制,就是將這些要保護的資料定義為常成員。所以,常成員比靜態成員在對資料的要求上更嚴格,靜態成員是可讀可寫,而常成員是唯讀不寫的。

c 學習之 類中的常成員與靜態成員

1.類中的所有成員都不能在定義時初始化,只能在建構函式時初始化 2.include using namespace std class circlepool 定義1個圓形水池類circlepool 建構函式 修改3 初始化後,不能再設定或修改price,刪除函式setprice void setpr...

類之靜態成員以及常物件 常成員

一 靜態成員 static修飾,每個類只有乙份拷貝,為所有該類的物件所共用。1.靜態資料成員 類內宣告 類外初始化。和全域性變數一樣,在資料段裡分配記憶體。eg class a 2 靜態成員函式可以通過類名直接呼叫,也可以通過物件來呼叫。格式為 類名 靜態成員函式 物件.靜態成員函式。二 常物件與常...

6 3 1 3 常成員 靜態成員 友元

特殊用途的成員 一 常成員 1.常資料成員 在類中定義的不能修改器值的一些資料成員,類似於變數,但是有自己的位址,一經賦值,不能修改,不同的物件其常資料成員的值可以不同。2.常成員函式 使用const 來保護成員資料不被成員函式改變。常成員函式不能更新物件的資料,也不能呼叫非const修飾的成員函式...