我有一个班级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
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();
};
但是我收到一个错误:当我尝试编译时,“ NetworkResponses 没有在Response
类定义中命名一个类型”。有人可以帮忙吗?我想我错过了一些简单的事情。我想我能够成功地在其他类中使用这个枚举,不知道在这种情况下有什么问题...谢谢。
答案 0 :(得分:5)
您有一个循环包含依赖项:NetworkResponse.h
包含Response.h
,反之亦然。这不行。 NetworkResponse.h
根本不需要包含Response.h
,因此您可以删除包含的内容。
答案 1 :(得分:2)