C++与namespace有关的两个编译错误的讲解分享!

某次,在大型的工程代码中,我这样调用:

  #include <iostream>  using namespace std;  namespace A  {  void fun()  {   printf("aaan");  }  }  namespace B  {  void fun()  {   printf("bbbn");  }  }  int main()  {   fun();   return 0;  }

编译出错:error: ‘fun' was not declared in this scope,查了一下,原来是名空间在捣鬼。另外,名空间中的函数为什么不缩进呢?我想了一下,理解了当时写代码的人为什么要这样做。

再看我遇到的另外一次错误:

  #include <iostream>  using namespace std;  namespace A  {   void fun()   {   printf("aaan");   }  }  namespace B  {   void fun()   {   printf("bbbn");   }  }  using namespace A;  using namespace B;  int main()  {   fun();   return 0;  }

结果:call of overloaded ‘fun()' is ambiguous ,错误很显而易见了。实际中也确实经常会犯这种错误。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对<计算机技术网(www.ctvol.com)!!>的支持。如果你想了解更多相关内容请查看下面相关链接

—-想了解C++与namespace有关的两个编译错误的讲解分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/482932.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐