在其他类中使用类类型的麻烦

时间:2013-04-13 00:08:59

标签: c++ class c-preprocessor

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

在声明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"

1 个答案:

答案 0 :(得分:1)

删除using namespace std

这会使用可能导致这些冲突的 lot 符号名称来污染全局命名空间。

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