我正在一个类中编写一个函数,该函数与另一个源自头文件(特别是 socket.h)的函数共享相同的名称。
void XClass::bind(){
//...
int rv = bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));
}
当然,bind(..) 调用的是类中的函数,而不是头文件中的函数(隐含的代码是不可编译的)。
既然它不在命名空间声明中,是否可以调用正确的方法?如果是,如何?
我知道我可以用不同的方式重新声明它,但是如果我有大块代码包含名称与调用者本身一致的外部函数,那么随之而来的重命名听起来就像噩梦。
最佳答案
您可以在相关名称前加上 ::
以表示您正在全局命名空间中查找它:
int rv = ::bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));
关于c++ - 名称相同,来源不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27204022/