I would like to wrap a C library within a C++ class. For my C++ class I also would like to have the same declaration used by these C function: is it possible to do that?
If for example I have the case below how would it be possible to distinguish the C-function from the C++ one? I would like to call the C one off course.
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 } }
::my_foo(val); This tells the compiler you want to call the global function and not the local function.
There are two ways to call another method function from the same class. First, you can use a dot/period to access the method from the class variable. Second, you can simply call the function and pass the class object as an argument.
Whenever the definition of a class member appears outside of the class declaration, the member name must be qualified by the class name using the :: (scope resolution) operator. The following example defines a member function outside of its class declaration.
Use the scope resolution operator ::
:
int my_foo( int val ){ // Call the global function 'my_foo' return ::my_foo(val); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With