Eine Definitionsregel in c ++
Nach dem c ++ Standard:
Keine Übersetzungseinheit darf mehr als eine Definition einer Variablen, Funktion, eines Klassentyps, eines Aufzählungstyps oder einer Vorlage enthalten.
//--translation_unit.cpp--//
int a;
void foo()
{
int a; //Second defention of a. ODR fails.
}
Können Sie mir erklären, wie ODR tatsächlich funktioniert?