2

所以我有一个定义如下的类:

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中定义的,它不在任何命名空间中。

为了解决方法,我将我的 close 重命名为其他东西,但必须有其他方法......

4

1 回答 1

4

只要找到至少一个函数,名称查找就会结束。您可以限定名称,以便它开始在正确的位置查找:

::close( mHandle );

或者在本地声明名称,以便查找绕过类成员:

using ::close;
close( mHandle );
于 2014-05-10T07:14:18.757 回答