用于C#的C ++包装器。使用私有类作为参数

时间:2014-05-20 20:37:28

标签: c# c++ c++-cli wrapper

我正在创建一个用于C#的.dll,但我无法理解包装器。

假设我原来的C ++代码有一个如下所示的函数:

void classB::do_something(classA& parameterA);

在classA的C ++包装器中,类指针是私有的:

public ref class classAwrapper{
    private:
        classA* classapointer;
    public:
        ...
}

由于我不能做到以下几点,

void classBwrapper::do_something(classAwrapper parameterA){
    classbpointer->do_something(parameterA->classapointer);
}

有什么我可以做的吗?

1 个答案:

答案 0 :(得分:0)

添加朋友。

写:

private:
    friend class classBwrapper;
    classA * classapointer;

而不是

private:
    classA * classapointer;

您实际上可以将类和函数添加到“白名单”中。使用friend关键字。除了classapointer

之外的任何内容都无法访问classBwrapper