我想在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
}
}
答案 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);
这告诉编译器要调用全局函数而不是本地函数。