解决C++名称冲突

jnm*_*nm2 3 c++ namespaces

InitializeQTML是QTML.h中的一个函数.我正在编写一个包装器,我想使用名称InitializeQTML作为包装器函数:

#include <QTML.h>

public class QuickTime
{ 
  public:  
    static void InitializeQTML(InitializationFlags flag) {
        InitializeQTML((long)flag));
    };
};
Run Code Online (Sandbox Code Playgroud)

如何从包装函数中引用原始的InitializeQTML函数并避免名称冲突而不重命名包装器?

Jam*_*lis 6

您可以限定名称.如果QTML库的InitializeQTML函数在全局命名空间中,则可以在QuickTime::InitializeQTML静态成员函数中使用它来引用它:

::InitializeQTML((long)flag);
^ look in the global namespace
Run Code Online (Sandbox Code Playgroud)