我完全不知道发生了什么。我一直在寻找对这里发生的奇怪的解释,但似乎我的情况在某些方面是独一无二的。我想象这是我在每个文件中包含我的头文件的顺序,但无济于事,我还没有找到似乎是解决方案的组合。
在声明LogArray[maxLength]
时,我似乎得到的确切错误是“log not name a type”。
我的一个类,类logmgmt:
class logmgmt
{
private:
static const int maxLength = 500;
log LogArray[maxLength];
int length;
public:
void fillLogs(int index, int iD, std::string date, double startTime, double endTime);
void displayThisLog(int index);
void setLength(int length);
};
logmgmt.cpp中的预处理器指令:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
#include "log.h"
#include "Logmgmt.h"
main.cpp中的指令
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
#include "employee.h"
#include "log.h"
#include "employeemgmt.h"
#include "Logmgmt.h"
答案 0 :(得分:1)
删除using namespace std
。
这会使用可能导致这些冲突的 lot 符号名称来污染全局命名空间。
在您的示例中,函数std::log
变为log
。所以它不能再命名为全局类型。