访问修饰符“protected private”在visual c ++中做了什么?

时间:2014-01-29 03:23:43

标签: visual-c++

XAML SwapChainPanel DirectX interop sample中的某些.h文件中,成员被声明为受保护的私有。

这与受保护的还是私有的有什么不同?

1 个答案:

答案 0 :(得分:5)

请参阅文档中的Namespaces and Type Visibility (C++/CX)。有一个名为成员可访问性和可见性的表,它解释了不同的访问修饰符。具体地,

  

受保护的私人受私人保护:在元数据中不可见;应用程序或组件中受保护的可访问性。

当您希望成员受到保护时,您可以使用此方法,以便您可以从同一模块中定义的派生类访问它,但您不希望该成员出现在元数据中。元数据中不存在的内容无法在ABI中使用。

什么时候有用?文档中的Ref classes and structs (C++/CX)页面解释了......

  

标准C ++类型必须具有私有内部受保护的私有辅助功能,这样才能防止它们被发送到元数据。

因此,受保护的私有的主要用途是,如果您需要使用无法在ABI上使用的C ++语言功能的受保护成员。这两个链接的文档页面以及其余的C ++ / CX文档包含更多相关信息。