2013-03-12 56 views
0

我在一个非常简单的头文件中收到C2143错误。你能帮我找到问题吗?错误C2143 VC++ 12

#ifndef GLOB_H_INCLUDED 
#define GLOB_H_INCLUDED 
#include <string> 
#include <windows.h> 

extern string *name, *surname, *dob, *hospNo, *addr, *sex, *email, *phone, *nhs, *allerg, *indic, *notes; 
extern int leftc, rightc, middlec; 
extern string ks; 

#endif 

如果您需要进一步解释任何事情......提前致谢。

回答

1

尝试增加using namespace std;的包括字符串头:)

+0

向另一个头添加'using'语句并不好 - 它强制整个名称空间进入任何包含该头的代码的范围。 – 2013-03-13 11:36:17

+0

@roger_rowland我完全同意你的观点,我的意图是提供问题的快速解决方案,而不会对C++最着名的方法潜心钻研:-) – 2013-03-13 11:41:54

0

你错过了“STD”命名空间后 - 但不是增加一个“使用”的条款,以你的头文件(这是不好的做法),像这样限定你的名字:

#ifndef GLOB_H_INCLUDED 
#define GLOB_H_INCLUDED 
#include <string> 
#include <windows.h> 

extern std::string *name, *surname, *dob, *hospNo, *addr, *sex, *email, *phone, *nhs, *allerg, *indic, *notes; 
extern int leftc, rightc, middlec; 
extern std::string ks; 

#endif