首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个头文件的有关问题

2012-03-09 
问个头文件的问题我主程序 目录下有个一个UI.h文件,里边定义了一个枚举enum Enum_Stock_Type{SH,SZ,}主程

问个头文件的问题
我主程序 目录下有个一个UI.h文件,里边定义了一个枚举
enum Enum_Stock_Type
{
SH, 
SZ,  
};

主程序下还有Analyzer文件夹,在里边的Analyzer.h中声明了一个类函数:

class Analyzer
{
public:
bool IsShangOrShen(Enum_Stock_Type stockType);
};

然后就产生很诡异的问题,编译出错error C2061: syntax error : identifier 'Enum_Stock_Type'
而且这个问题,随着代码的改动时有时无,让我无比崩溃。我怀疑是头文件应用的问题。
若在Analyzer.h中引用UI.h这个头文件,应该是#include "..\UI.h"这样子没错吧?还有个问题,此时
编译过程中当前目录到底是当前文件所在的目录,还是debug中exe所在的目录啊?

[解决办法]
你可以将这些头文件都放到一个工程里面,然后在Analyzer.h #include"UI.h"就可以了。
[解决办法]
先是当前文件所在目录
再从工程中设置的Include directory的那些目录中找
时有时无也有可能是头文件循环包含了,A开始包了B.h B.h里面需要A.h内的某定义,但是再次包A.h时因为防止重复包含而实际并没包含。请规划好头文件包含关系,尽量单项无环。
如果实在不行非要循环包含,可以在class Analyzer 的前面加上enum Enum_Stock_Type; 的声明试试。
[解决办法]
相对于文件所在目录的

时有时无的问题可能是你编译时有没有编译到错误代码导致的现象

可能你工程有很多个cpp文件 你编译了那个没有错的文件
[解决办法]
工程的当前目录是你的proj文件所在目录,vc6.0是dsw,dsp所在文件目录。

热点排行