实验6
一。
#include<iostream> using namespace std; class base{ public: base(int a,int b):m(a),n(b){} int add(){return m+n;} int getm(){return m;} int getn(){return n;} private: int m,n; }; class A:public base{ public: A(int a,int b):base(a,b){} int sub(){return base::getm()-base::getn();} }; class B:public base{ public: B(int a,int b):base(a,b){} int mul(){return base::getm()*base::getn();} }; class C:public base{ public: C(int a,int b):base(a,b){} int div(){return base::getm()/base::getn();} }; int main(){ A a(4,3);B b(5,6);C c(7,3); cout<<a.add()<<" "<<a.sub()<<endl; cout<<b.add()<<" "<<b.mul()<<endl; cout<<c.add()<<" "<<c.div()<<endl; return 0; }

二。
main.h
class vehicle{ public: vehicle(int m,int w):maxspeed(m),weight(w){cout<<"1 "<<endl;} // 设置输出数字可以看到构造函数和析构函数调用顺序 ~vehicle(){cout<<" 2"<<endl;} void run(){ cout<<"run"<<endl; } void stop(){ cout<<"stop"<<endl; } private: int maxspeed,weight; }; class bicycle:virtual public vehicle{ public: bicycle(int a,int b,int c):vehicle(a,b),height(c){cout<<"3 "<<endl;} ~bicycle(){cout<<"4 "<<endl;} private: int height; }; class motorcar:virtual public vehicle{ public: motorcar(int e,int f,int g):vehicle(e,f),seatnum(g){cout<<" 5"<<endl;} ~motorcar(){cout<<" 6"<<endl;} private: int seatnum; }; class motorcycle:public bicycle,public motorcar{ public: motorcycle(int a,int b,int c,int d,int m,int n,int a1,int b1): vehicle(m,n),bicycle(a,b,c), motorcar(a1,b1,d){cout<<"7 "<<endl; } ~motorcycle(){cout<<"8 "<<endl; } };
main.cpp
#include<iostream> using namespace std; int main(){ motorcycle m(1,2,3,4,1,2,3,4); m.run(); m.stop(); return 0; }

三。
fraction.h
class fraction{ public: fraction(int bb,int tt):b(bb),t(tt){ } void show(){ cout<<t<<"/"<<b<<endl; } fraction operator+(fraction &f2); // fraction operator-(fraction &f2); fraction operator*(fraction &f2); fraction operator/(fraction &f2); private: int b,t; };
fraction.cpp
fraction fraction::operator+(fraction &f2){ return fraction(b*f2.b,t*f2.b+f2.t*b); } fraction fraction::operator-(fraction &f2){ return fraction(b*f2.b,t*f2.b-f2.t*b); } fraction fraction::operator*(fraction &f2){ return fraction(b*f2.b,t*f2.t); } fraction fraction::operator/(fraction &f2){ return fraction(b*f2.t,t*f2.b); }
main.cpp
#include<iostream> using namespace std; int main(){ fraction f1(3,4),f2(5,2); fraction f3(1,1); //试了用 fraction f3; 显示错误,why f3=f1+f2;f3.show(); f3=f1-f2;f3.show(); f3=f1*f2;f3.show(); f3=f1/f2;f3.show(); return 0; }

有待完善......
浙公网安备 33010602011771号