使用具有相同声明的类方法调用全局函数

时间:2011-08-22 15:37:59

标签: c++ gcc wrapping

我想在C ++类中包装一个C库。对于我的C ++类,我也希望这些C函数使用相同的声明:是否可以这样做?

例如,如果我在下面的情况下如何区分C函数和C ++函数?我想打电话给C一个。

 extern int my_foo( int val ); //

 class MyClass{
    public:
    int my_foo( int val ){
           // what to write here to use
           // the C functions?
           // If I call my_foo(val) it will call
           // the class function not the global one
    }
 }

3 个答案:

答案 0 :(得分:48)

使用scope resolution operator ::

int my_foo( int val ){
    // Call the global function 'my_foo'
    return ::my_foo(val);
}

答案 1 :(得分:5)

::my_foo(val);

应该这样做。

答案 2 :(得分:5)

使用合格名称查找

::my_foo(val);

这告诉编译器要调用全局函数而不是本地函数。