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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage