能否通過 . 或 -> 訪問 private 成員,取決於代碼所在的作用域:
this->private_var 還是 other_obj.private_var(如拷貝構造函數 A(const A& s) { a = s.a; })。class A {
private:
int a;
public:
A(const A& s) { a = s.a; } // 此處訪問 s.a 合法,因在類 A 內部
};
這正是「同類對象互訪私有成員」的經典合法用例。
「類內隨便訪,類外門兒無;友元破例入,同類互通有。」
掌握作用域邊界,靈活運用封裝與友元,寫出既安全又高效的 C++ 代碼。