我在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();
}
};
答案 0 :(得分:7)
您需要将在头部之外的前向声明的类上调用成员函数的函数的主体移动到可用定义的位置:
void A::HelloFromA(){
b->HelloFromB();
}
否则,编译器知道B
可用,但它不知道B
具有不带参数的HelloFromB
成员函数。