Ответ 1
Используйте оператор разрешения области ::
:
int my_foo( int val ){
// Call the global function 'my_foo'
return ::my_foo(val);
}
Я хотел бы обернуть библиотеку 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);
Это говорит компилятору, который вы хотите вызвать глобальную функцию, а не локальную функцию.