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

时间:2011-08-25 03:26:51

标签: c++-cli

我正在创建一个.net托管包装器。所有代码都是用C ++编写的,我使用C ++ / CLI创建一个包装器。

C ++类中的某些函数处于受保护级别,因此我无法包装这些函数。每当我尝试包装受保护的函数时,我继续得到“无法访问在类错误中声明的受保护成员。

有解决方法吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

创建一个派生自现有非托管类的新非托管类,并将受保护的成员重新公开为public。然后创建一个托管类来包装新派生的类,并让 it 在托管类型层次结构中将受保护的原始成员公开为受保护的。