c++ - 名称相同,来源不同的函数

标签 c++ function header namespaces

我正在一个类中编写一个函数,该函数与另一个源自头文件(特别是 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/

相关文章:

c++ - 从主线程 C++ 更新信号量

c++ - 如何将 boost::shared_ptr (或另一个智能指针)附加到对象父对象的引用计数器?

c++ - 如何将两个类成员函数与同一个类中的另一个函数一起添加?

C:从函数中的循环中删除多个值的方法

php - 为什么这个 header 位置重定向在内容已经被回显后起作用?

php - 如何从客户端使浏览器缓存中的页面无效?

c++ - AWS 开发工具包 C++ : putting an object in S3 with server side encryption

javascript - 如何使用数组值作为函数参数的变量名以在 JavaScript 中从数组创建表?

function - Mathematica中的TunkRank

Javascript 授权 HTTP header