📄 subject_61087.htm
字号:
<p>
序号:61087 发表者:badboy 发表日期:2003-11-17 18:04:50
<br>主题:友元函数使用的时机是什么?就是非得用友元函数才能解决问题的时候?
<br>内容:?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2003-11-18 23:27:47
<br>内容:大家对这个问题不感兴趣吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:doggo 回复日期:2003-11-19 14:08:44
<br>内容:简单例子:流操作符<<的重载。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2003-11-20 15:16:36
<br>内容:老兄一下子就说到重点了!<BR> 友元函数的出现就是为了让别的域的函数能直接访问当前类的私有成员而不用类的公用接口。 那干吗非要用友元函数呢?用类的成员函数不也行吗?<BR> <BR> 老兄所举的例子似乎只能由友元来解决。我们新创造出一个新数据类型A,我们又想让这个数据类型能够 利用<< 来输出这个新数据类型的数据。怎么办呢?那就需要重载 << 这个符号了,把新创造出来的数据类开放给 << ,这样,当我们的程序再出现 A a;cout<<a; 便不会再有问题了。 那,我们把这个 << 做成新数据类型A 的成员函数呢?那不也行吗?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:doggo 回复日期:2003-11-20 23:15:43
<br>内容:你要注意成员运算符是成员函数时一个很重要的特点:最左边的操作数必须是运算符类的一个对象或者对象的引用。如果只是作为成员函数那么你就无法写成cout << a的形式,而要写成a << cout了。<BR>一般来说,如果操作符左边的操作数必须是一个不同类的对象,或者是一个内部类的对象时,该函数必须作为一个非成员函数来实现。如果该函数又需要直接访问private或者protected成员时该函数就必须是一个友元函数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2003-11-24 01:55:13
<br>内容:我说,高手,我最近实在太忙!<BR><BR> 您说的话,我得漫漫消化!<BR><BR> 有时间再向您请教!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -