Iam смотрит на кусок кода, который создает глобальные переменные класса. Конструкторы этих классов вызывают таблицу символов одноплодные и добавляют эти указатели в нем ..C++ Глобальные переменные класса не создаются
В Keywords.cpp файл
class A : class KeyWord
{
A() { add(); }
} A def;
аналогична для ключевых слов B, C и т.д.
void KeyWord::add()
{
CSymbolCtrl& c = CSymbolCtrl::GetInstance();
c.addToTable(this);
}
Эти единицы перевода скомпилированы для формирования библиотеки. Когда я «dumpbin» библиотеки, я вижу динамические инициализаторы для ADef, BDef и т. Д.
Нет в exe, когда я вызываю экземпляр CSymbolCtrl, я не нашел ADef, BDef .. сохраненный на его карте. Когда я устанавливаю точку останова в add(), она не попадает. Есть ли способ, по которому компоновщик игнорирует ADef, BDef, потому что на них нет ссылки?
Не могли бы вы использовать достоверно компилируемый образец кода? –