private (C++)
语法
private:
[member-list]
private base-class
备注
当位于类成员列表之前时,private
关键字指定这些成员仅可从成员函数和该类的友元中进行访问。 这适用于声明到下一个访问指示符或类的末尾的所有成员。
当位于基类的名称之前时,private
关键字指定基类的公共成员和受保护成员为派生类的私有成员。
类中成员的默认访问是私有的。 结构或联合中成员的默认访问是公共的。
基类的默认访问对于类是私有的,而对于结构是公共的。 联合不能具有基类。
有关相关信息,请参阅控制对类成员的访问中的友元、公共、受保护的和成员访问表。
/clr 专用
在 CLR 类型中,C++ 访问说明符关键字(public
、private
和 protected
)可能影响与程序集相关的类型和方法的可见性。 有关详细信息,请参阅成员访问控制。
注意
使用 /LN 编译的文件不受此行为的影响。 在这种情况下,所有托管类(公共或私有)都将可见。
END /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 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈