Een van de header-bestanden is als volgt –
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
Als ik het project probeer te compileren, krijg ik de foutmelding
error C2011: 'AAA' : 'class' type redefinition
Nergens anders in mijn programma heb ik de klasse AAA
opnieuw gedefinieerd. Hoe los ik dit op?
Antwoord 1, autoriteit 100%
Verander in code in iets als dit:
#ifndef AAA_HEADER
#define AAA_HEADER
#include "stdafx.h"
class AAA
{
public:
std::string strX;
std::string strY;
};
#endif
Als je dit headerbestand meer dan eens in een bronbestand opneemt, zal include guards de compiler dwingen om slechts één keer klasse te genereren, zodat het geen class redefinition
-fout geeft.
Antwoord 2, autoriteit 61%
Toevoegen
#pragma once
naar het begin van je AAA.h-bestand zou het probleem moeten oplossen.
zoals dit
#include "stdafx.h"
#pragma once
class AAA
{
public:
std::string strX;
std::string strY;
};
Antwoord 3, autoriteit 9%
Naast de voorgestelde include-bewakers moet je #include “stdafx.h” uit de koptekst verwijderen. Zet het bovenaan het cpp-bestand.