c – 朋友类定义

c – 朋友类定义,第1张

概述今天我查看了boost :: asio :: ip :: address的头文件源代码,发现了以下几行: class address{ // I removed some irrelevant lines here... public: /// Compare addresses for ordering. friend bool operator>=(const addre 今天我查看了boost :: asio :: ip :: address的头文件源代码,发现了以下几行:

class address{  // I removed some irrelevant lines here...  public:  /// Compare addresses for ordering.  frIEnd bool operator>=(const address& a1,const address& a2)  {    return !(a1 < a2);  }};

现在我知道朋友的用途是什么,但我从未在类定义中看到它后面的定义.

所以我的问题是,这个朋友的声明是做什么的?在我看来,运算符> =不是这里的方法,但是也没有静态关键字.

在这种特殊情况下,朋友会替换静态吗?

解决方法 是的,不是.它不会替换static,因为在调用运算符时不需要限定名称.它有点像你不需要一个类实例来调用它.

就像在课堂外宣布运算符一样:

class address{  // I removed some irrelevant lines here...  public:  /// Compare addresses for ordering.  frIEnd bool operator>=(const address& a1,const address& a2);};inline bool operator>=(const address& a1,const address& a2){   return !(a1 < a2);}

您可以从类中访问私有和受保护的方法.

考虑在类中重载流 *** 作符,可以应用相同的技术.

总结

以上是内存溢出为你收集整理的c – 朋友类定义全部内容,希望文章能够帮你解决c – 朋友类定义所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存