【问题标题】:C++ external Function Names OverlappingC++ 外部函数名称重叠
【发布时间】:2017-10-06 18:16:44
【问题描述】:

我目前正在研究一个类,其中我有一个名为“connect”的方法,我还调用了 winsock 函数“connect”。这当然会导致编译器给我一个错误,因为它不知道如何处理它。

我怎样才能以最好的方式解决这样的命名问题?

我想保留我的方法名称,因为它最好地描述了正在发生的事情。

我无法控制 winsock 函数“connect”的名称,即使我可以控制,我认为重命名它也没有多大意义。

我很确定这个或类似的东西已经在其他地方得到了回答,但我太笨了,找不到它。

【问题讨论】:

  • 可以显式引用socket函数为::connect()
  • 同样使用this->connect()来使用类函数。
  • 谢谢你已经这样做了。我现在感觉有点傻
  • @Simplex 没有必要在你的问题中说明它已经解决了,如果你已经接受了答案,那就很清楚了。也请避免像“提前致谢”这样的噪音和绒毛。
  • @Simplex " 我认为简短的“感谢您的帮助”不会影响问题的清晰性并且是适当的。” Nope

标签: c++ naming


【解决方案1】:

在调用winsock 标准函数时,您可以在函数名称前使用范围解析运算符::。即

::connect(....params....);

当你想调用你的类函数时,你可以通过以下方式调用类函数 -

this->connect(...params...);

请注意,我已经在 cmets 中总结了建议的解决方案,以便将来的用户可以获得帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2022-06-23
    相关资源
    最近更新 更多