L'un des fichiers d'en-tête est le suivant -
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
Lorsque j'essaie de compiler le projet, j'obtiens l'erreur
error C2011: 'AAA' : 'class' type redefinition
Nulle part ailleurs dans mon programme je n'ai redéfini la classe AAA
. Comment puis-je réparer ça?
Changez pour coder quelque chose comme ceci:
#ifndef AAA_HEADER
#define AAA_HEADER
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
#endif
Si vous incluez ce fichier d'en-tête plusieurs fois dans un fichier source, les gardes d'inclusion forceront le compilateur à générer la classe une seule fois afin de ne pas donner class redefinition
Erreur.
Ajouter
#pragma once
en haut de votre fichier AAA.h devrait résoudre le problème.
comme ça
#include "stdafx.h"
#pragma once
class AAA
{
public:
std::string strX;
std::string strY;
};
En plus des protections d'inclusion suggérées, vous devez déplacer #include "stdafx.h" hors de l'en-tête. Mettez-le en haut du fichier cpp.