下面的代码告诉我:
在成员函数'void A :: method()'中:错误:使用不完整类型'B' 在嵌套的名称说明符B :: meth();
中
我在SO上搜索了这个错误的解决方案,发现我可以使用[self.session sendMessage:@{"command": "start"} replyHandler:nil errorHandler:nil]
但没有帮助
- (void) session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message replyHandler:(void (^)(NSDictionary<NSString *,id> * _Nonnull))replyHandler
答案 0 :(得分:3)
在update-alternatives
行定义时,A::method
仅以名称而非其完整定义而为人所知。
在使用B
之前,您必须确保已知B
的完整定义。
选项1
在B::meth()
的定义之前移动B
的定义。
A
选项2
在class B
{
public:
void static meth()
{
}
};
class A
{
public:
void method()
{
B::meth();
}
};
的定义之后移动A::method
的定义。
B
答案 1 :(得分:0)
问题是A类在定义B类之前试图访问B类成员。您应该首先定义B类。此外,考虑重命名类以使它们按字母顺序排列。