0

我完全不知道发生了什么。我一直在寻找这里发生的怪异的解释,但似乎我的情况在某些方面是独一无二的。我想这是我在每个文件中包含头文件的顺序,但无济于事,我还没有找到似乎是解决方案的组合。

我似乎得到的确切错误是在声明LogArray[maxLength].

我的一门课,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"
4

1 回答 1

1

删除using namespace std.

那是用许多可能导致这些冲突的符号名称污染全局名称空间。

在您的示例中,函数std::log变为log. 所以它不能再命名一个全局类型。

于 2013-04-13T00:58:26.470 回答