我正在查看一段创建全局类变量的代码。这些类的构造函数调用符号表单例并将this指针添加到其中。
在Keywords.cpp文件中。
同样地,关键字B、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 等的动态初始化函数。
但是在可执行文件中,当我调用 CSymbolCtrl 实例时,在其映射中并没有找到 ADef、BDef 等内容。当我在 add() 函数中设置断点时,它没有被触发。难道链接器会忽略 ADef、BDef 等因为它们没有被任何地方引用吗?
}