筱羅卜 2015-06-08 09:02 采纳率: 100%
浏览 2766
已采纳

这是什么错误啊??求大神指教,

--------------------Configuration: zy1 - Win32 Debug--------------------
Compiling...
1.cpp
D:\VC++6.0\Microsoft Visual Studio\MyProjects\zy1\1.cpp(47) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(s)

  • 写回答

3条回答 默认 最新

  • 筱羅卜 2015-06-08 09:48
    关注

    /*1.已知一个有理数类zrf_Ratio,包含私有数据成员:分子num和分母den, 以及公有函数成员 friend ostream& operator<<(ostream& ostr, const zrf_Ratio& r) { return ostr << r.num << "/" << r.den;} 请补充该类的构造函数,并实现如下的操作符重载形式: friend zrf_Ratio operator-(const zrf_Ratio&); friend zrf_Ratio operator+(const zrf_Ratio&, const zrf_Ratio&); friend zrf_Ratio operator-(const zrf_Ratio&, const zrf_Ratio&); friend zrf_Ratio operator*(const zrf_Ratio&, const zrf_Ratio&); friend zrf_Ratio operator/(const zrf_Ratio&, const zrf_Ratio&);*/

    #include
    using namespace std;
    int f1()
    { int m,n,t;
    cout<<"请输入两个数:";
    cin>>m>>n;

    while(n!=0)
    { t=m%n; m=n; n=t; }
    return m;
    }

    class zrf_Ratio
    {
    public:

    friend ostream& operator<<(ostream& ostr, const zrf_Ratio& r)
    { return ostr << r.num << "/" << r.den;}

    friend zrf_Ratio operator-(const zrf_Ratio& r0 )
    {return zrf_Ratio(-r0.num,r0.den);}

    friend zrf_Ratio operator+(const zrf_Ratio& r1, const zrf_Ratio& r2)
    { int a=f1(r1.den,r2.den); return zrf_Ratio((r1.num*r2.den+r2.num*r1.den)/d,r1.den*r2.den/d); }

    friend zrf_Ratio operator-(const zrf_Ratio& r1, const zrf_Ratio& r2)
    { int a=f1(r1.den,r2.den); return zrf_Ratio((r1.num*r2.den-r2.num*r1.den)/d,r1.den*r2.den/d); }

    friend zrf_Ratio operator*(const zrf_Ratio& r1, const zrf_Ratio& r2)

    { int a=f1(r1.den,r2.den); while(a!=1) { r1.num*r2.num/=d; r1.den*r2.den/=d; d=f1(r1.num*r2.num,r1.den*r2.den); } return zrf_Ratio(r1.num*r2.num,r1.den*r2.den); }

    friend zrf_Ratio operator/(const zrf_Ratio& r1, const zrf_Ratio& r2)
    {return r1*zrf_Ratio(r2.num,r2.den);}
    private:
    int num,den;
    };
    int mian()
    {
    zrf_Ratio m(3,7);

    zrf_Ratio n(4,9);

    p(-a);

    p(a+b);

    p(a-b);

    p(a*b);

    p(a/b);

    return 0; }
    就是这个题目,这代码肯定有好多错误,希望前辈可以耐心指教,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站