我知道C ++中的::运算符是作用域分辨率,但是在类中调用函数的目的是什么呢?
class MyClass
{
int myFunc(int argument)
{
// do some stuff
return (::myFunc(another_argument));
}
}
有实际的原因吗?这个是“这个”吗?
答案 0 :(得分:9)
如果您有这样的用例:
//in the global namespace
int myFunc(int);
//elsewhere
class MyClass
{
int myFunc(int argument)
{
// do some stuff
return (::myFunc(another_argument));
}
}
这里我们需要分辨成员函数和自由函数。包装C库时,这种情况非常常见。
在这种情况下,::
强制编译选择驻留在全局命名空间中的版本,而不是最终以递归方式调用自身的成员函数。