具有相同名称,不同来源的功能

时间:2014-11-29 15:46:50

标签: c++ function header namespaces

我在一个类中编写一个函数,该函数与源自头文件(特别是socket.h)的另一个函数共享同一个名称。

void XClass::bind(){
     //...
     int rv = bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));

}

当然,bind(..)调用类中的函数而不是标题中的函数(隐式代码是不可编译的)。

由于它不在命名空间声明中,是否可以调用方法?如果是肯定的,怎么样?

我知道我可以以不同的方式重新声明它,但是如果我有大量的代码包含名称与调用者本身重合的外部函数,则会导致重命名声音像噩梦。

1 个答案:

答案 0 :(得分:1)

您可以在::前加上相关名称,以表示您在全局命名空间中查找它:

int rv = ::bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));