2

我遇到了这篇关于C++ 中动态链接的文章。

我们可以创建一个 C++ 工厂,它会返回我们感兴趣的类的对象。此外,我们应该在工厂的文件范围内创建一个静态对象,以便可以使用dlsym(). (文章建议静态对象没有名称混乱。)

为什么静态对象没有名称混乱?

4

1 回答 1

5

名称修饰是为了帮助解析重载的函数名称而发明的。您可以定义多个具有相同名称的函数,不同之处仅在于其参数的数量和类型。名称修饰使链接器可以将此类函数解析到代码中的正确位置。

与函数名称不同,全局命名空间中的静态对象名称不能被重载,因此不需要修改它们。事实上,在全局命名空间之外的对象名称是错位的。

于 2012-09-30T22:46:57.200 回答