静态对象的名称管理 我在C++中碰到过。< /P> 我们可以创建一个C++工厂,它将返回我们感兴趣的类的对象。 此外,我们应该在工厂的文件范围内创建一个静态对象,以便使用dlsym()找到它。(文章建议静态对象不会被名称弄乱。)
为什么静态对象没有名称损坏?名称损坏是为了帮助解决重载函数名而发明的。您可以使用相同的名称定义多个函数,但仅在计数和参数类型上有所不同。Name mangling允许链接器将此类函数解析到代码中的正确位置静态对象的名称管理 我在C++中碰到过。< /P> 我们可以创建一个C++工厂,它将返回我们感兴趣的类的对象。 此外,我们应该在工厂的文件范围内创建一个静态对象,以便使用dlsym()找到它。(文章建议静态对象不会被名称弄乱。),c++,static-members,dynamic-linking,name-mangling,C++,Static Members,Dynamic Linking,Name Mangling,为什么静态对象没有名称损坏?名称损坏是为了帮助解决重载函数名而发明的。您可以使用相同的名称定义多个函数,但仅在计数和参数类型上有所不同。Name mangling允许链接器将此类函数解析到代码中的正确位置 与函数名不同,全局命名空间中静态对象的名称不能重载,因此无需对其进行修改。全局名称空间之外的对象的名称实际上已损坏。由于名称空间的原因,对象名称可以而且实际上已损坏。但是,问题是关于文件范围(即全局名称空间)中的“静态”对象,在这种情况下,损坏很可能是不可操作的。@MSalters非常感谢您的
与函数名不同,全局命名空间中静态对象的名称不能重载,因此无需对其进行修改。全局名称空间之外的对象的名称实际上已损坏。由于名称空间的原因,对象名称可以而且实际上已损坏。但是,问题是关于文件范围(即全局名称空间)中的“静态”对象,在这种情况下,损坏很可能是不可操作的。@MSalters非常感谢您的宝贵意见!我修正了答案,以澄清只有全局名称空间中的对象名称才不会被损坏。