ヘッダーファイルの1つは次のとおりです-
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
プロジェクトをコンパイルしようとすると、エラーが発生します
error C2011: 'AAA' : 'class' type redefinition
私のプログラムでは、クラスAAA
を再定義していません。どうすれば修正できますか?
次のようなコードに変更します。
#ifndef AAA_HEADER
#define AAA_HEADER
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
#endif
ソースファイルにこのヘッダーファイルを複数回インクルードする場合、インクルードガードは、コンパイラーにクラスを1回だけ生成させ、class redefinition
エラー。
追加中
#pragma once
aAA.hファイルの先頭に問題を処理する必要があります。
このような
#include "stdafx.h"
#pragma once
class AAA
{
public:
std::string strX;
std::string strY;
};
推奨されるインクルードガードに加えて、#include "stdafx.h"をヘッダーから移動する必要があります。 cppファイルの先頭に置きます。