Harker299 2022-01-08 11:06 采纳率: 100%
浏览 86
已结题

C++结构体报错问题

定义分数结构体Per,重载Per相加符号,相加时化简。
struct Per
{
    int son, mom;
};

int gcd(int a, int b){
    int r, ok = 1, out;
    while(ok){
        r = a % b;
        if(r == 0){
            ok = 0;
            out = b;
        } else {
            a = b;
            b = r;
        }
    }
    return out;
}//最大公约数
int hj(int a, int b, int i){
    a = a / gcd(a, b);
    b = b / gcd(a, b);
    if(i) return b;
    else return a;
}//分子分母化简
Per operator + (const Per& a, const Per& b){
    int son = a.son * b.mom + a.mom * b.son;
    int mom = a.mom * b.mom;
    return Per(hj(son, mom, 0), hj(son, mom, 1));
}

ostream& operator << (ostream& out, const Per& p){
    out << p.son << "/" << p.mom;
    return out;
}

报错 no matching function for call to 'Per::Per(int, int)'

######查阅信息竞赛教材,发现刘汝佳在使用Point结构体时可以直接使用Point(int, int),所以没有头绪

两个分数Per相加,化简,输出.son / .mom
  • 写回答

1条回答 默认 最新

  • 关注

    没有相应的构造函数
    结构体修改如下:

    
    struct Per
    {
        int son, mom;
        Per(){son=0;mom=0;}
        Per(int a,int b){son=a;mom=b;}
    };
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日

悬赏问题

  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)
  • ¥15 AQWA | 水动力分析 二阶波浪力