包含向量模块冲突 C++

Inclusion vector module conflict c++

我对包含矢量模块有疑问。似乎与其他模块存在冲突。这是结构:

在simulation.h中:

#pragma once
#ifndef SIMULATION
#define SIMULATION

#include <ostream>
#include <sstream>
#include <string>

#include <algorithm>
#include <cstdlib>
// #include <vector>

#include "File.h"
...
void afficherResultat(std::vector<Client> sortie);
...
#endif

和 File.h 文件:

#pragma once

#ifndef FILE
#define FILE

#include <vector>

class File {
    ...
    std::vector<Client> l;
    ...    
};

#endif

我收到 108 个错误,开头为:C4091 警告和 C4430、C2065、C4229 错误... 有些人强调夹杂物的顺序。有什么想法吗?

您正在为属于标准库一部分的标识符定义宏:

#define FILE

(请参阅 https://en.cppreference.com/w/cpp/io/c#Types 了解 FILE 是什么)。

禁止这样做,会导致非常奇怪的错误。

而是使用尽可能独特的名称,包括警卫,例如INCLUDE_GUARD_FILE_H.

如果你有包含防护,也不需要 #pragma once 这是解决包含防护也应该防止的双重包含问题的非标准方法。

此外,您还没有在 File.h 中声明 Client。可能缺少定义 Client 的头文件的某些 #include