首页 > 编程语言 >C++

C++

时间:2023-05-12 20:44:46浏览次数:30  
标签:s3 s2 s1 C++ int Score y2

运算符重载

请定义一个分数类,拥有两个整数的私有数据成员,分别表示分子和分母(分母永远为正数,符号通过分子表示)。
重载运算符加号"+",实现两个分数的相加,所得结果必须是最简分数。

#include <iostream>
using namespace std;

class Score
{
int x=0;//分母
int y=0;//分子
public:
Score()
{}
friend Score operator + (Score &s1,Score &s2)
{
Score s3;
s3.x=s1.x*s2.x;
s3.y=s1.y*s2.x+s2.y*s1.x;
for(int i=2;i<=max(s3.x,s3.y);i++)
{
if (s3.x%i==0&&s3.y%i==0)
{
s3.x=s3.x/i;
s3.y=s3.y/i;
i=2;
}
}
return s3;
}
void get(int _y,int _x)
{
x=_x;
y=_y;
}
void display()
{
if(y%x==0||y==0)
{
cout<<y/x;
}
else
{
cout<<y<<" "<<x;
}
}
};

int main()
{
Score s1,s2,s3;
int x1,x2,y1,y2;
cin>>y1>>x1>>y2>>x2;
s1.get(y1,x1);
s2.get(y2,x2);
s3=s1+s2;
s3.display();
return 0;
}

标签:s3,s2,s1,C++,int,Score,y2
From: https://www.cnblogs.com/zh-ang-zhang/p/17396244.html

相关文章

  • 终于找到了C++成员函数做函数指针的完美解决办法
    当然,这是转自别人的:https://www.codenong.com/19808054/之前因为这个没少废精力啊,这里记一下,感谢外国友人的回答.1#include<iostream>2#include<functional>3#include<string>4#include<sstream>5#include<memory>67usingnamespacestd;89......
  • C++ 模板
     模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如 向量 ,我们可以定义许多不同类型的向量,比如 vector<in......
  • C++ 变量类型
    C++变量类型变量其实只不过是程序可操作的存储区的名称。C++中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不......
  • C++ 模板
    模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如 向量 ,我们可以定义许多不同类型的向量,比如 vector<int> 或......
  • c++打卡练习(26)
    水仙花数:一个三位数,每个位上的数的三次方的和等于这个数本身,那么他就是水仙花数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ intbai,shi,ge,i,j=0; for(i=100;i<1000;i++){ bai=i/100; shi=(i-bai*100)/10; ge=i-bai*100-shi*10; if(i==bai*ba......
  • C/C++思考:命令模式在控制中的应用
    目录意义问题用命令模式解决电机控制与输入信号耦合问题与标准命令模式的区别异同意义先说结论:命令模式能有效对代码模块进行解耦,增强模块的扩展性以及可移植性。问题为了方便说明问题,假设现在有一个电机Motor,在识别到外界信号后,通过软件控制其旋转。需要支持的旋转方式为3种:......
  • java 的 JDK JRE , android 的 SDK NDK , native c++ 的概念
       ......
  • 【C++之内联函数和模板】
    内联函数(inline):1.使用关键字inline修饰的函数叫做内联函数,内联函数可以提升程序运行效率。2.内联函数是一种用空间换取时间的方法,省去了调用函数的时间,会将函数代码拷贝过来占用空间,所以很长的代码不适合转变内联函数。3.如果定义为inline的函数体过大,编译器优化时会忽略掉内......
  • 使用golang编写支持C++调用的动态库,接口支持结构体和回调函数
    网上有很多例子介绍如何使用cgo实现C/C++与golang进行接口交互。我有个项目是使用Qt写的客户端程序,但Qt在需要使用redis、支持表单的web服务、mq或网络化日志库等需求时,往往需要加载一大堆第三方库,且编译复杂,跨平台(如Windows/linuxarm/linuxx86)编译时较为复杂。鉴于有使用go......
  • C/C++折半查找与哈希查找[2023-05-11]
    C/C++折半查找与哈希查找[2023-05-11]4、折半查找与哈希查找(难度等级A)[问题描述]查找是通过在查找表中做比较来完成的操作。折半查找与哈希查找都是利用数组实现的查找算法。通过本题,可以观察两种查找算法的性能。一般我们用平均查找长度ASL来表示一种查找算法的性能。ASL......