我在 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();
}
};
最佳答案
您需要将调用前向声明类的成员函数的函数体移动到 header 之外的定义可用的地方:
void A::HelloFromA(){
b->HelloFromB();
}
否则,编译器知道B
可用,但不知道B
有HelloFromB
不带参数的成员函数.
关于c++ - 为什么在前向声明后出现未定义类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429876/