簡體   English   中英

是否可以在第一個數據對象的方法中訪問另一個第二個數據 object 的私有屬性?

[英]Is it ok to access a private property of another second data object in the first data object's method?

如問題所述,如果調用是 queue1.compareQueues(queue2),是否可以在 queue1 的方法中訪問 queue2.frontNode?

bool Queue::compareQueues(Queue& queue2) {
    Node* queue1Pointer = frontNode;
    Node* queue2Pointer = queue2.frontNode;
    return true;
};

成員訪問不是每個實例,而是每個 class。 在 class 定義中,您可以訪問所有私有成員(該類的任何實例)。

cppreference

每個 class 成員(靜態、非靜態、function、類型等)的名稱都有關聯的“成員訪問權限”。 當在程序的任何地方使用成員的名稱時,會檢查其訪問權限,如果它不滿足訪問規則,則程序不會編譯:[...]

這只是“解釋”(隨后是示例),但請注意,它說的是“每個 class 成員的名稱”,而不是“對象的成員”。

粗略地說,每個 class 訪問的原因是,在成員方法中,您應該知道在觸摸內部時您在做什么。 無論您是接觸this還是other一些的內部結構,都不會改變您需要了解該類型的內部工作原理的事實。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM