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 – 朋友类定义所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)