在XAML SwapChainPanel DirectX interop sample中的某些.h文件中,成员被声明为受保护的私有。
这与受保护的还是私有的有什么不同?
答案 0 :(得分:5)
请参阅文档中的Namespaces and Type Visibility (C++/CX)。有一个名为成员可访问性和可见性的表,它解释了不同的访问修饰符。具体地,
受保护的私人或受私人保护:在元数据中不可见;应用程序或组件中受保护的可访问性。
当您希望成员受到保护时,您可以使用此方法,以便您可以从同一模块中定义的派生类访问它,但您不希望该成员出现在元数据中。元数据中不存在的内容无法在ABI中使用。
什么时候有用?文档中的Ref classes and structs (C++/CX)页面解释了......
标准C ++类型必须具有私有,内部或受保护的私有辅助功能,这样才能防止它们被发送到元数据。
因此,受保护的私有的主要用途是,如果您需要使用无法在ABI上使用的C ++语言功能的受保护成员。这两个链接的文档页面以及其余的C ++ / CX文档包含更多相关信息。