我想在Foo的“ bar”方法中从“ somelib”调用无作用域的函数“ bar”。
// .h
class Foo
{
int bar();
};
// .cpp
#include "Foo.h"
#include <somelib> // contains unscooped function bar()
int Foo::bar()
{
return bar(); // unwanted recursive function
}
解决此问题的一种方法是使用帮助程序功能,例如“ bar_helper”
// .cpp
#include "Foo.h"
#include <somelib> // contains unscooped function bar()
// unnamed namespace
namespace
{
int bar_helper()
{
return bar(a);
}
}
int Foo::bar()
{
return bar_helper();
}
如果非成员bar
函数在全局范围内,则可以使用作用域运算符::
:
int Foo::bar()
{
return ::bar();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句