来自包含文件的Typdef'未在此范围内声明'

时间:2018-08-03 14:43:23

标签: c++

我正在尝试使用在包含的头文件中声明的typedef,但是出现以下错误:

error: ‘Status’ was not declared in this scope
   Status status;
   ^

在文件中包含的标头中声明typedef。

Server.hh(简体):

class myClass {
   public:
      typedef mynamespace::Status Status;
      ...
}

ClientServer.cc:

#include "Server.hh"
...
Status status;  // error thrown here

这种方法是否有问题?如何使typedef可用于多个文件?

1 个答案:

答案 0 :(得分:0)

typedefusingnamespace均位于编写该语句的代码块的本地。您必须将Server.hh重新组织为

typedef mynamespace::Status Status;
class myClass {
   public:
      ...
}

Server.cc访问,因为typedef将位于最外面的代码块中。