Asタイトルには次のように書かれています。私は、ヘッダファイルを複数回インクルードすることによる再定義エラーに遭遇しています。私はそのことを知っていますが、解決する方法はわかりません。はい、以前は1時間前に同じ問題を投稿しました。しかし、私は正しく説明することができず(私はそう思う)、期待通りの答えを得られなかった。ここにリンクがある:それは:)をいっぱいにしているのでヘッダーファイルを複数回含むことによるC++の再定義
私はその質問を編集していませんよ。
オーケー、私はいくつかのクラスがあり、それらの構造は、このようなものです:
main.cppに:
#include "Server.h"
#include "Handler.h"
#include "Processor.h"
int main(int argc, char* argv[])
{
}
Server.h:
// Server.h
#pragma once
#include <winsock2.h>
ハンドラ.h:
// Handler.h
#pragma once
#include <string>
#include <vector>
#include "Server.h"
Processor.cpp:
// Processor.cpp
#include "StdAfx.h"
#include "Processor.h"
#include "Handler.h"
Server.cpp:
// Server.cpp
#include "Server.h"
#include "Processor.h"
問題は、それがどこにある<winsock2.h>
は知りませんが、複数回含まれていることです。 の#pragmaはかつて私のコンパイラ(この場合はMSVC2008)で
#ifndef SOME_FILE_H
#define SOME_FILE_H
// code here
#endif // SOME_FILE_H
と同じ目的を果たします。だから、私はガードを含むヘッダーは必要ないと確信している。しかし、私はどこで<winsock2.>
が2回含まれている間違いをしているのか分かりますか?どのように解決できますか?
ありがとうございます。
Processor.hはどこですか? – Klaim
StdAfx.hには何がありますか? –
同じ質問を2回尋ねると、重複が作成されます。投票を終了する。 –