所以我有一个定义如下的类:
class Socket {
public:
Socket();
virtual ~Socket();
int open();
void close();
private:
int mHandle;
int mState;
};
然后我实现了close()方法:
void Socket::close()
{
if (mHandle!=0)
close(mHandle);
}
"关闭(mHandle)"在我的关闭中是在AFAIK中定义的那个,它不在任何命名空间内。
为了解决这个问题,我将其重新命名为其他东西,但还有其他方法......
答案 0 :(得分:4)
只要找到至少一个函数,名称查找就会结束。您可以对名称进行限定,以便它开始在正确的位置查找:
::close( mHandle );
或者在本地声明名称,以便查找绕过类成员:
using ::close;
close( mHandle );