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
}
}
int my_foo( int val ){
// Call the global function 'my_foo'
return ::my_foo(val);
}
使用修飾名ルックアップ
::my_foo(val);
これは、ローカル関数ではなくグローバル関数を呼び出すようにコンパイラーに指示します。
::my_foo(val);
それはそれをする必要があります。