private (C++)
語法
private:
[member-list]
private base-class
備註
在類別成員清單之前, private
關鍵字會指定這些成員只能從類別的成員函式和朋友存取。 這種做法適用於在下一個存取指定名稱或類別結尾之前宣告的所有成員。
在基類名稱之前, private
關鍵字會指定基類的公用和受保護成員是衍生類別的私用成員。
類別中成員的預設存取方式是 private。 結構或等位中成員的預設存取方式是 public。
對於類別而言,基底類別的預設存取方式為 private,對於結構而言則為 public。 等位不可以具有基底類別。
如需相關資訊,請參閱 控制類別成員 的存取權中的 friend 、 public 、 protected 和 member-access 資料表。
/clr 專屬資訊
在 CLR 類型中,C++ 存取規範關鍵字 ( public
、 private
和 protected
) 可能會影響有關元件之類型和方法的可見度。 如需詳細資訊,請參閱 成員存取控制 。
注意
以 /LN 編譯的檔案不會受到此行為的影響。 在這種情況下,所有 Managed 類別 (public 或 private) 都會是可見。
/clr 專屬資訊結束
範例
// keyword_private.cpp
class BaseClass {
public:
// privMem accessible from member function
int pubFunc() { return privMem; }
private:
void privMem;
};
class DerivedClass : public BaseClass {
public:
void usePrivate( int i )
{ privMem = i; } // C2248: privMem not accessible
// from derived class
};
class DerivedClass2 : private BaseClass {
public:
// pubFunc() accessible from derived class
int usePublic() { return pubFunc(); }
};
int main() {
BaseClass aBase;
DerivedClass aDerived;
DerivedClass2 aDerived2;
aBase.privMem = 1; // C2248: privMem not accessible
aDerived.privMem = 1; // C2248: privMem not accessible
// in derived class
aDerived2.pubFunc(); // C2247: pubFunc() is private in
// derived class
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應