c 靜態成員函式訪問非靜態資料成員

2021-03-11 19:05:00 字數 768 閱讀 7437

1樓:匿名使用者

沒有搞錯

bai這是c++語法所決定的

c++類的靜du態成員

變數和zhi靜態dao成員函式內是所有實容例共用的這個和c的靜態變數靜態函式的概念不一樣,需要理解所以類靜態函式訪問非靜態變數只有通過引數指明要訪問的物件才可以因為 i,j都是類物件當然可以訪問私有成員外部不允許訪問私有成員是說類以外**不允許訪問兩個類例項間的訪問也是在類內部完成的

void a::f(a a)

這個本身是類的成員函式,當然可以訪問

因為函式 f本身是靜態函式,所以訪問時要指明具體訪問物件這就在於正確理解

2樓:匿名使用者

x是私有成員沒錯,

但是f函式也是a的成員,雖然它是靜態的,但同樣也是a的成員

所以,它仍然可以訪問a的私有和保護成員。

3樓:匿名使用者

**不理解那?x是私有成員,但是f(a a)卻是公共函式,可以供外界使用的

4樓:匿名使用者

2樓的回答正確,只要是這個類的成員函式,即使是靜態成員函式,也可以訪問這個類的例項的私有成員變數和函式。

5樓:養蘊納喇淳雅

static

void

functiona(a

&b)將例項物件作為引數傳進去

6樓:買儼陀悌

classa;

void

a::f(aa)

靜態成員函式沒有this指標,是怎麼實現被物件訪問的

有兩種方法 例子 class c int main 方法1,因為類的靜態成員函式還是在類中定義,所以屬於該類。cs.func 可以呼叫該函式。方法2,靜態函式相當於有全域性的生命週期,因為屬於類c,所以可以用如下 c func 純手打望採納 類的靜態函式被該類所有的例項所共享,因而沒有this指標,...

c語言裡面的靜態函式和函式有區別嗎

靜態函式是函式的一種,函式包括靜態函式和非靜態函式兩種。其中靜態函式是有static修飾的函版數,如果沒權有,則為非靜態函式 全域性函式 當整個程式只有乙個c檔案時,二者沒有區別。當程式是由多個c檔案組成時,二者的作用域,即可使用的範圍不同。其中,靜態函式 帶static的 只能在本檔案中使用,無法...

怎樣在C定義類中定義訪問資料成員的成員函式

一般都是這樣做的啊,成員變數定義成private,提供對外的public函式,要訪問內部的成員變數的話,必須通過這種成員函式,get,set 資料成員和bai成員函式是乙個類的du兩個基本的屬性。成員函zhi數可dao以呼叫資料成員,資料成專員按照不同要求設為屬private public和prot...