靜態資料成員與靜態成員函式

2021-10-06 07:33:51 字數 1454 閱讀 1232

#include

#include

using

namespace std;

class

student

~student()

static

intnumber()

protected

:static

int noofstudents;

char name[40]

;};int student::noofstudents=0;

//靜態資料成員在類宣告外分配空間和初始化

//::可以用來表示名字百空間,也可以用在類外面度定義類函式。

//.表示類例項調知用類中的公有函式。

voidfn(

)int

main()

//333

公共靜態成員可以被類的外部訪問,保護或私有的靜態成員只能被類的內部訪問。

在類的外部,訪問靜態資料成員的形式可以用s1.noofstudents,並且等價於s2.noofstudents,更通常的用法是students::noofstudents(不能用student.noofstudents)。其意義是:靜態資料成員是屬於student類的,而不是屬於某個特定物件的,也不需要依賴某個特定物件的資料。

#include

#include

using

namespace std;

class

student

protected

:static

int noofstudents;

char name[40]

;};int student::noofstudents=1;

intmain()

應當注意:靜態成員不於任何物件聯絡,故不能對非靜態成員進行預設訪問(但不是不能訪問)

exp:

class

student

protected

:static

int noofstudents;

char name[40]

;};

靜態成員函式sname()只認型別,不認物件。若使用物件s引導的s.sname(),也只識別物件s所屬型別。

靜態成員的這種性質使得訪問任何非靜態成員的操作都是違法的。,所以上述**中name對sname是未知型別的。

靜態成員函式訪問物件中非靜態成員的方法

::靜態成員函式於非靜態成員函式的根本區別:

靜態成員函式沒有this指標。而非靜態成員函式有乙個指向當前物件的指標this。

友元友元是一種定義在類外部的普通函式或類,但它需要在類體內進行說明,為了與該類的成員函式加以區別,在說明時前面加以關鍵字friend。友元不是成員函式,但是它可以訪問類中的私有成員。

靜態資料成員與靜態成員函式

靜態屬性不是類中每個物件擁有的,而是共有的。由於靜態成員逃離了物件而存在的性質,所以該實體應該在所有物件產生之前產生,更適合的時機是在程式啟動的時候做初始化。初始化時候不可重複上static,但是要加上類名空間。該實體在程式中的唯一性,要求他不可以和類的定義放在標頭檔案中,但是它確實是類的成員,所以...

3 6 靜態資料成員與靜態成員函式

time limit 1000ms memory limit 65536k 通過本題目的練習可以掌握靜態資料成員和靜態成員函式的用法 要求設計乙個點類 point 它具有兩個 double 型的資料成員x,y。和乙個靜態資料成員 count 用以記錄系統中建立點物件的數目。為該類設計建構函式和析構函...

C 靜態資料成員與靜態成員函式

一般情況下,如果有n個同類的物件,那麼每乙個物件都分別有自己的資料成員,不同物件的資料成員各自有值,互不相干。但是有時人們希望有某乙個或幾個資料成員為所有物件所共有,這樣可以實現資料共享。可以使用全域性變數來達到共享資料的目的。例如在乙個程式檔案中有多個函式,每乙個函式都可以改變全域性變數的值,全域...