5

我有一个班级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有人可以帮忙吗?我想我错过了一些简单的东西。我想我能够在其他类中成功使用这个枚举,不知道在这种情况下出了什么问题......谢谢。

4

2 回答 2

5

您有一个循环包含依赖项:NetworkResponse.h包含Response.h,反之亦然。这行不通。NetworkResponse.h根本不需要包含Response.h,因此您可以删除该包含。

于 2013-02-28T12:13:51.010 回答
2

这个枚举有一个基础类型,在这种情况下是 int 。因此,您可以执行以下操作:

int response = Success;

你也可以这样使用它。看到这个

于 2013-02-28T11:48:54.680 回答