Je regarde un morceau de code qui crée des variables de classe globales. Les constructeurs de ces classes appelle une table de symboles singleton et ajoute les pointeurs ce dedans ..C++ Les variables de classe globales ne sont pas créées
Dans un fichier Keywords.cpp
class A : class KeyWord
{
A() { add(); }
} A def;
même pour des mots-clés B, C etc
void KeyWord::add()
{
CSymbolCtrl& c = CSymbolCtrl::GetInstance();
c.addToTable(this);
}
Ces unités de traduction sont compilées pour former une bibliothèque. Quand je « dumpbin » la bibliothèque, je vois les initialiseurs dynamiques pour ADEF, BDéf etc.
Non dans l'exe, quand je l'appelle l'instance CSymbolCtrl, je ne ai pas trouvé l'ADEF, BDéf .. stockées dans sa carte. Quand je mets un point d'arrêt dans add(), il ne se fait pas toucher. Est-il possible que l'éditeur de liens ignore ADef, BDef car ils ne sont référencés nulle part?
}
Pourriez-vous utiliser un exemple de code plausiblement compilable? –