| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 677 人关注过本帖
标题:自己编写的分数相加,运算符重载不太会,求改正
取消只看楼主 加入收藏
niji
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
自己编写的分数相加,运算符重载不太会,求改正
//定义分数类,可以用初值构造分数,保证其对象的分母不为0
//重载加法运算符,即实现A+B运算(A、B是分数)
 
#include<iostream>
using namespace std;

class fenshu
{
public:
       fenshu(int m,int z);
       ~fenshu(){};
       friend fenshu operator+(fenshu &f1,fenshu &f2);
       friend ostream & operator<<(ostream &out,fenshu &o);
private:
        int fenzi;
        int fenmu;
};
//实现
fenshu::fenshu(int m,int z)
{               
   fenmu=m;
   fenzi=z;
   if(fenmu==0)
   {
       cout<<"分母不能为零!";
   }
   else
   {   
        cout<<"请重新输入一个分数:";               
        fenmu=m;
        fenzi=z;
}

fenshu operator+(fenshu &f1,fenshu &f2)
{
       return fenshu(f1.fenmu*f2.fenmu,f1.fenzi*f2.fenmu+f2.fenzi*f1.fenmu); //此处提示有错
}

ostream & operator<<(ostream &out,fenshu &o)
{
        out<<o.fenzi<<"/"<<o.fenmu<<endl;
        return out;
}

//主函数               
int main()
{   
    fenshu f1,f2,f3;
    cout<<"请输入分数f1的 分母(空格)分子:"<<endl;
    cin>>f1;
    cout<<"请输入分数f2的 分母(空格)分子:"<<endl;
    cin>>f2;     
    f3=f1+f2;
    cout<<"f1+f2="<<c3<<endl;
    return 0;
}
搜索更多相关主题的帖子: class private include public 
2011-12-11 22:36
快速回复:自己编写的分数相加,运算符重载不太会,求改正
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037685 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved