C++ cli 使用C+包装受保护的成员函数+/CLI

C++ cli 使用C+包装受保护的成员函数+/CLI,c++-cli,C++ Cli,我正在创建一个.net托管包装器。所有代码都是C++的,我用C++/CLI。 < C++类中的一些函数处于保护级别,因此我不能包装这些函数。每当我试图包装受保护的函数时,我总是在类中声明一个“无法访问受保护的成员”错误 是否有解决方法?只能从类或其子类中调用受保护的方法 不需要包装受保护的方法,因为它最初只是打算从类层次结构中调用。使用包装器的应用程序不在C++或C++ +CLI类的类层次结构中。 即使您能够从包装类调用受保护的方法,谁来调用它?包装类中的方法也将被声明为受保护,包装类的使用者将

我正在创建一个.net托管包装器。所有代码都是C++的,我用C++/CLI。 < C++类中的一些函数处于保护级别,因此我不能包装这些函数。每当我试图包装受保护的函数时,我总是在类中声明一个“无法访问受保护的成员”错误


是否有解决方法?

只能从类或其子类中调用受保护的方法

不需要包装受保护的方法,因为它最初只是打算从类层次结构中调用。使用包装器的应用程序不在C++或C++ +CLI类的类层次结构中。


即使您能够从包装类调用受保护的方法,谁来调用它?包装类中的方法也将被声明为受保护,包装类的使用者将无法调用它。

受保护的方法只能从类或其子类中调用

不需要包装受保护的方法,因为它最初只是打算从类层次结构中调用。使用包装器的应用程序不在C++或C++ +CLI类的类层次结构中。


即使您能够从包装类调用受保护的方法,谁来调用它?包装类中的方法也将声明为受保护,包装类的使用者将无法调用它。

创建一个新的非托管类,该类派生自您现有的非托管类,并重新公开受保护的memBER作为公共。然后创建一个托管类以包装新派生的类,并让它将那些最初受保护的成员公开为托管类型层次结构中受保护的成员。

创建一个从现有非托管类派生的新非托管类,并将受保护的成员重新公开为公共。然后创建一个托管类以包装您的新派生的类,并让它将那些最初受保护的成员公开为托管类型层次结构中受保护的成员。

但假设另一个人希望从现有托管类派生一个类。在这种情况下,他应该能够调用受保护的函数,但如果这些函数未包装,则他将无法访问它们!但支持ose其他人将希望从现有托管类派生类。在这种情况下,他应该能够调用受保护的函数,但如果这些函数未包装,则他将无法访问它们!