小编Wei*_* He的帖子

C++中的函数名称冲突

B类继承自A类.A类具有名为的虚函数bind.

Class A {
  virtual void bind();
}

class B: public A {
  B();
}
Run Code Online (Sandbox Code Playgroud)

在B的构造函数中,它使用bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)函数from <sys/socket.h>.

#include <sys/socket.h>

B::B () {
  int sockfd = socket(AF_INET, SOCK_STREAM, 0);
  sockaddr_in server_addr, client_addr;
  if(sockfd < 0)
    perror("ERROR opening socket.\n");
  bzero((char*)&server_addr, sizeof(server_addr));
  server_addr.sin_family = AF_INET;
  server_addr.sin_addr.s_addr = INADDR_ANY;
  server_addr.sin_port = 2333;
  if(bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
    perror("ERROR on binding.\n");
  listen(sockfd, 1);
}
Run Code Online (Sandbox Code Playgroud)

编译器抛出错误,说两个bind函数冲突.我知道我可以为bindin 创建一个包装器sys/socket.h.是否有任何优雅而简单的方法来解决冲突? …

c++ conflict

6
推荐指数
1
解决办法
1667
查看次数

标签 统计

c++ ×1

conflict ×1