我有一堂课Response说.
#include "NetworkResponse.h"
class NetworkResponse;
class Response {
public:
Response();
virtual ~Response();
Response(NetworkResponse * networkResponse);
NetworkResponses responseCode; // This is an enum and here I get an error
};
#endif
Run Code Online (Sandbox Code Playgroud)
NetworkResponses实际上是一个定义的枚举"NetworkResponse.h".像这样:
// "NetworkResponse.h":
#include "Response.h"
enum NetworkResponses {
Success = 1,
UserAlreadyExists = 2,
InvalidUsername = 3,
SecurityError = 4,
UnknownError = 5
};
class Response;
class NetworkResponse {
public:
NetworkResponse();
virtual ~NetworkResponse();
};
Run Code Online (Sandbox Code Playgroud)
但是当我尝试编译时,我得到一个错误:" NetworkResponses在Response类定义中没有命名类型" .有人可以帮忙吗?我想我错过了一些简单的事情.我想我能够成功地在其他类中使用这个枚举,不知道在这种情况下有什么问题...谢谢.
你有一个循环包含依赖:NetworkResponse.h包括Response.h,反之亦然.这不行.NetworkResponse.h根本不需要包括Response.h,所以你可以删除包含.