C 怎樣訪問私有成員函式

2021-10-14 08:58:12 字數 803 閱讀 9565

我知道的大概是三種方法:

通過位址進行訪問

通過友元函式

通過友元類

第二種和第三種是比較常見的做法,第一種可能不太常見

這種方法能夠使用只要是因為類的儲存機制,類內只有成員變數和虛函式,所以可以利用位址來進行訪問。

即通過

a a;

*((int*)&a);來實現

#includeusing namespace std;

class a

private:

int a;

int b;

int c;

};int main()

將函式宣告為類的友元,那麼類就會將函式當作自己人,然後就可以直接訪問類的私有成員變數

#includeusing namespace std;

class a

private:

int a;

};void show()

int main()

同上面一樣,也是將宣告為類的友元,然後友元類就能夠訪問類的私有成員變數

#includeusing namespace std;

class a;

class b

private:

int a;

};class a

};int main()

成員函式訪問物件私有成員

在類的定義過程中,成員函式可以訪問傳遞過來的 同類物件 的所有成員 可以訪問私有成員 可以這樣理解 類是在編譯階段就存在的概念,物件是在執行階段才存在的。c 的私有判斷是在編譯時間決定的,因此c 的私有只能是基於類的,不是基於物件的。封裝是編譯期的概念,是針對型別而非物件的,在類的成員函式中可以訪問...

C 中訪問私有成員

首先我必須承認訪問乙個類的私有成員不是什麼好做法。大家也都知道私有成員在外部是不能被訪問的。而乙個類中會存在很多私有成員 如私有字段 私有屬性 私有方法。對於私有成員訪問,可以套用下面這種非常好的方式去解決。private string name public string name set 但是有...

C 中訪問私有成員

首先訪問乙個類的私有成員不是什麼好做法。大家都知道私有成員在外部是不能被訪問的。乙個類中會存在很多私有成員 如私有字段 私有屬性 私有方法。對於私有成員造訪,可以套用下面這種非常好的方式去解決。private string name public string name set 但是有時候,源 是別...