博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++实验6
阅读量:5081 次
发布时间:2019-06-12

本文共 3409 字,大约阅读时间需要 11 分钟。

实验结论

实验内容1

源码
main.cpp

#include
#include"chip.h"using namespace std;int main(){ int m,n; cout<<"输入两个数m,n"<
>m>>n; Basic base(m,n); A a(m,n); B b(m,n); C c(m,n); base.add() ; a.add() ; a.sub() ; b.add() ; b.mul() ; c.add() ; c.div() ; return 0;}

chip.h

#include
using namespace std;class Basic {public: Basic(int m0,int n0):m(m0),n(n0) {} int add() { cout << "m + n = " << m + n << endl; } int m, n;};class A : public Basic {public: A(int m0, int n0) : Basic(m0,n0) {} int sub() { cout << "m - n = " << m - n << endl; }};class B : public Basic {public: B(int m0, int n0) : Basic(m0,n0) {} int mul() { cout << "m * n = " << m * n << endl; }};class C : public Basic {public: C(int m0, int n0) : Basic(m0,n0) {} double div() { cout << "m / n = " << double(m) / n << endl; }};

截图

1349689-20180603192811127-1381210965.png
实验内容2
源码
main.cpp

#include
#include"vehicle.h" using namespace std;int main(){ Motorcycle mc(1,2,3,4); mc.run() ; mc.stop() ; return 0;}

vehicle.h

#include
using namespace std;class Vehicle{ public: Vehicle(int m,int w):maxspeed(m),weight(w){} int maxspeed,weight; void run(){cout<<"run"<

截图

1349689-20180603193001021-2011291334.png
实验内容3
源码
main.cpp

#include
#include"fraction.h"using namespace std;int main(){ Fraction p1(3,5),p2(4,7),p3; p3=p1+p2; cout<
<

fraction.h

#include
using namespace std;class Fraction{ public: Fraction(){ } Fraction(int t0,int b0); friend Fraction operator+(const Fraction &p1,const Fraction &p2); friend Fraction operator-(const Fraction &p1,const Fraction &p2); friend Fraction operator*(const Fraction &p1,const Fraction &p2); friend Fraction operator/(const Fraction &p1,const Fraction &p2); friend ostream& operator<<(ostream &out,const Fraction &p); int top; int bottom;};class iFraction:public Fraction{ public: iFraction(){ } iFraction(int t0,int b0); void show();};

fraction.cpp

#include"fraction.h"#include
#include
using namespace std;int gys(int x,int y)//求最大公约数 { int m=1,a=x,b=y; for(;m!=0;) { m=a%b;a=b;b=m; } return a;}//Fraction类的实现int m;//m为分子分母最大公约数 int bottom,top;Fraction::Fraction(int t0,int b0):top(t0),bottom(b0){}//构造函数重载Fraction operator+(const Fraction &p1,const Fraction &p2){ bottom=p1.bottom*p2.bottom; top=p1.top*p2.bottom+p1.bottom*p2.top; m=gys(fabs(top),fabs(bottom)); top/=m,bottom/=m; return(Fraction(top,bottom)); }Fraction operator-(const Fraction &p1,const Fraction &p2){ bottom=p1.bottom*p2.bottom; top=p1.top*p2.bottom-p1.bottom*p2.top; m=gys(fabs(top),fabs(bottom)); top/=m,bottom/=m; return(Fraction(top,bottom));}Fraction operator*(const Fraction &p1,const Fraction &p2){ top=p1.top*p2.top,bottom=p1.bottom*p2.bottom; m=gys(fabs(top),fabs(bottom)); top/=m,bottom/=m; return(Fraction(top,bottom));}Fraction operator/(const Fraction &p1,const Fraction &p2){ top=p1.top*p2.bottom,bottom=p1.bottom*p2.top; m=gys(fabs(top),fabs(bottom)); top/=m,bottom/=m; return(Fraction(top,bottom));}ostream& operator<<(ostream &out,const Fraction &p){ out<
<<"/"<

截图

1349689-20180603203832681-1230267099.png

实验总结与体会

基本掌握了运算符重载,同时了解到友元函数不属于类的成员,不能被继承

转载于:https://www.cnblogs.com/wyqwyq/p/9130231.html

你可能感兴趣的文章
JAVA常见算法题(三十二)---找规律
查看>>
hadoop配置文件的加载机制
查看>>
正则表达式语法
查看>>
JAVA编程规范-代码格式规范
查看>>
[读码时间] 复选框选择
查看>>
css 点点加载demo
查看>>
【转存】身份证号检验详解与更正
查看>>
让你彻底理解 “==”与 Equals
查看>>
Chart FX for Java Desktop图形控件详细介绍及下载
查看>>
逆序对的三种解法
查看>>
页面静态化
查看>>
AWR之-enq TX - row lock contention的性能故障-转
查看>>
CentOS7修改主机名
查看>>
Android 如何使edittext默认失去焦点
查看>>
分析servlet injection
查看>>
Remove Duplicates from Sorted Array
查看>>
Eval的日期格式化方法
查看>>
apache关联php
查看>>
用正则表达式过滤网站敏感词
查看>>
数据库锁
查看>>