正如标题所说。由于多次包含头文件,我遇到了重新定义错误。我知道是因为这个,但我不知道如何解决。是的,我之前提前一个小时在 SO 中发布了同样的问题。但我无法正确解释(我想是这样),也没有得到预期的答案。链接在这里:
我没有编辑那个问题,因为它已经被填满了:)。
好的,我有一些类,它们的结构是这样的:
主.cpp:
#include "Server.h"
#include "Handler.h"
#include "Processor.h"
int main(int argc, char* argv[])
{
}
服务器.h:
// Server.h
#pragma once
#include <winsock2.h>
处理程序.h:
// Handler.h
#pragma once
#include <string>
#include <vector>
#include "Server.h"
处理器.cpp:
// Processor.cpp
#include "StdAfx.h"
#include "Processor.h"
#include "Handler.h"
服务器.cpp:
// Server.cpp
#include "Server.h"
#include "Processor.h"
问题是<winsock2.h>
包含多次,不知道在哪里,但它在哪里。#pragma once的作用与
#ifndef SOME_FILE_H
#define SOME_FILE_H
// code here
#endif // SOME_FILE_H
在我的编译器中(在本例中为 MSVC2008)。所以我很确定我不需要标题包括警卫。但是你能发现我在哪里犯了<winsock2.>
两次被包含的错误,我该如何解决?
谢谢