2

我在 C++ CLI 中使用此代码。但是,这应该与 C++ 没有任何区别。
我正在寻找摆脱该错误的解决方案。

代码 :

ref class B;
ref class A;

public ref class A
{
public:
    A() {}
    B^ b;
    void HelloFromA(){
        b->HelloFromB();
    }
};

public ref class B
{
public :
    A^ a;
    B() {}
    void HelloFromB(){
        a->HelloFromA();
    }
};
4

1 回答 1

7

您需要将调用前向声明的类上的成员函数的函数的主体移到标头之外的位置,以便定义可用:

void A::HelloFromA(){
    b->HelloFromB();
}

否则,编译器知道它B是可用的,但它不知道它B具有HelloFromB不带参数的成员函数。

于 2013-03-15T10:27:07.423 回答