gpt4 book ai didi

c++ - 名称与类方法冲突

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:38 25 4
gpt4 key购买 nike

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

class Socket {
public:
Socket();
virtual ~Socket();

int open();
void close();

private:
int mHandle;
int mState;
};

然后我这样实现 close() 方法:

void Socket::close()
{
if (mHandle!=0)
close(mHandle);
}

我的 close 中的“close(mHandle)”是在 AFAIK 中定义的,它不在任何命名空间内。

为了解决这个问题,我将 close 重命名为其他名称,但必须有其他方法...

最佳答案

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

::close( mHandle );

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

using ::close;
close( mHandle );

关于c++ - 名称与类方法冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com