C 在類中可以訪問同類物件的私有成員

2021-09-27 08:41:07 字數 653 閱讀 2353

今天在實現string類的拷貝建構函式時,發現可以直接使用引數物件去訪問該類的私有成員。

string

(const string& s)

//copy拷貝建構函式

:_str

(new char

[strlen

(s.c_str)])

,_size

(s._size)

,_capacity

(s._capacity)

private:

char

* _str;

int _size;

int _capacity;

static

const size_t npos =-1

;

可是一想,不應該只有通過特定的介面才能訪問私有成員嗎?這樣不就違反了類的封裝的特性了嗎?

於是我查了查封裝的定義:將資料和運算元據的方法進行有機結合,隱藏物件的屬性和實現細節,僅對外公開介面來和物件進行互動

劃重點:對外

在通過看別人的部落格,得到了結論:在類中可以訪問同類物件的私有成員。因為在是在類的內部實現的,並不是對外的,所以並不違背類的封裝的思想。

關於類成員函式中訪問同類物件的私有成員

原址 關於類成員函式中訪問同類物件的私有成員,主要包含以下幾種場景 a 在c 的類的成員函式中,允許直接訪問該類的物件的私有成員變數。b 在類的成員函式中可以訪問同型別例項的私有變數。c 拷貝建構函式裡,可以直接訪問另外乙個同類物件 引用 的私有成員。d 類的成員函式可以直接訪問作為其引數的同型別物...

關於類成員函式中訪問同類物件的私有成員

原址 注釋 為了尊重原作者,在不改變內容的前提下,我進行了格式和內容的編輯,增強閱讀體驗。這位兄弟的文章,挺全面的,不過也有一點囉嗦。好像這個文章的上傳作者也在杭州工作,有機會聯絡下,一起討論交流下c 的一些知識。關於類成員函式中訪問同類物件的私有成員,主要包含以下幾種場景 a 在c 的類的成員函式...

關於類成員函式中訪問同類物件的私有成員

關於類成員函式中訪問同類物件的私有成員,主要包含以下幾種場景 a 在c 的類的成員函式中,允許直接訪問該類的物件的私有成員變數。b 在類的成員函式中可以訪問同型別例項的私有變數。c 拷貝建構函式裡,可以直接訪問另外乙個同類物件 引用 的私有成員。d 類的成員函式可以直接訪問作為其引數的同型別物件的私...