当没有任何前缀的时候,这是什么意思?

时间:2014-06-09 22:18:37

标签: c++

我正在开发一个涉及套接字和QT的项目。我想使用sys / socket.h中的套接字函数而不是QT附带的套接字函数。 (这是因为我正在遵循一些教程类型的东西)。

以下代码:

if (connect(sock, (const struct sockaddr *) &servAddr, (socklen_t) sizeof(servAddr)) < 0){    //connect to server

导致以下错误:

  

错误:没有匹配函数来调用&#39; MainWindow :: connect(int&amp;,   const sockaddr *,socklen_t)&#39;

我通过在connect()之前添加::来修复此问题,如下所示:

if (::connect(sock, (const struct sockaddr *) &servAddr, (socklen_t) sizeof(servAddr)) < 0){    //connect to server

据我了解,我可以使用::前缀为命名空间,但它在当前使用中意味着什么?我只是从论坛帖子中找到了如何解决我的错误,但它没有解释其背后的潜在想法。使用::。

的任何其他技巧

1 个答案:

答案 0 :(得分:1)

这意味着从全局范围中获取后面的表达式。有关详细信息,请参阅this answer