我在一个类中编写一个函数,该函数与源自头文件(特别是socket.h)的另一个函数共享同一个名称。
void XClass::bind(){
//...
int rv = bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));
}
当然,bind(..)调用类中的函数而不是标题中的函数(隐式代码是不可编译的)。
由于它不在命名空间声明中,是否可以调用右方法?如果是肯定的,怎么样?
我知道我可以以不同的方式重新声明它,但是如果我有大量的代码包含名称与调用者本身重合的外部函数,则会导致重命名声音像噩梦。
答案 0 :(得分:1)
您可以在::
前加上相关名称,以表示您在全局命名空间中查找它:
int rv = ::bind(listener, (struct sockaddr*) &addr, sizeof(sockaddr));