打印

运算符重载问题

[复制链接]
975|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsgy123|  楼主 | 2012-7-10 23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <iostream>
using
namespace std;

class F {
        
int d;
        
int n;
public:
        F (
int d, int n) : d(d), n(n) {

        }
        
const F operator-(const F& f) const {   //为啥这里可以使用成员函数?

int num = n * f.d - d * f.n;//d,n不应该是私有的吗?访问私有的应该用友元啊

int den = d * f.d;
               
return F(num, den);
        }
        friend ostream
&
operator<<(ostream& o, const F& f) {
                o
<< f.d <<
"/"
<< f.n << endl;
               
return o;
        }

};
int main(void)
{
        F f1(
1, 2);
        F f2(
3, 4);
        F f4
= f1 - f2;
        cout
<< f4 << endl;
        
return
0;
}

相关帖子

沙发
txcy| | 2012-7-11 00:14 | 只看该作者
成员函数可以访问私有成员,你还知道么??运算符也可以重载为成员函数的。建议你仔细的去学C++

使用特权

评论回复
板凳
pkat| | 2012-7-11 22:13 | 只看该作者
找本C++的书把重载这一块再翻翻

使用特权

评论回复
地板
火箭球迷| | 2012-7-11 22:22 | 只看该作者
这个应该是C++比较基础的知识了

使用特权

评论回复
5
baidudz| | 2012-7-11 22:30 | 只看该作者
建议lZ翻翻C++ primmer这本书,很经典的

使用特权

评论回复
6
无冕之王| | 2012-7-12 21:50 | 只看该作者
很基础的C++问题,基础还是要打牢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝