private (C++)

語法

private:
   [member-list]
private base-class

備註

在類別成員清單之前, private 關鍵字會指定這些成員只能從類別的成員函式和朋友存取。 這種做法適用於在下一個存取指定名稱或類別結尾之前宣告的所有成員。

在基類名稱之前, private 關鍵字會指定基類的公用和受保護成員是衍生類別的私用成員。

類別中成員的預設存取方式是 private。 結構或等位中成員的預設存取方式是 public。

對於類別而言,基底類別的預設存取方式為 private,對於結構而言則為 public。 等位不可以具有基底類別。

如需相關資訊,請參閱 控制類別成員 的存取權中的 friend 、 public protected 和 member-access 資料表。

/clr 專屬資訊

在 CLR 類型中,C++ 存取規範關鍵字 ( publicprivateprotected ) 可能會影響有關元件之類型和方法的可見度。 如需詳細資訊,請參閱 成員存取控制

注意

/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
}

另請參閱

控制對類別成員的存取
關鍵字