实践六
1
#pragma once #include<iostream> using namespace std; class Base { public: Base(int a, int b) :m(a), n(b) {}; int add() { cout << "m+n=" << m + n << endl; return m+n; } int getm()const { return m; } int getn()const { return n; } private: int m; int n; }; class A :public Base { public: A(int a, int b) :Base(a, b) {}; int minus() { int x = getm(); int y = getn(); cout << "m-n=" << x - y << endl; return x-y; } }; class B :public Base { public: B(int a, int b) :Base(a, b) {}; int multiply() { int x = getm(); int y = getn(); cout << "m*n=" << x * y << endl; return x*y; } }; class C :public Base { public: C(int a, int b) :Base(a, b) {}; int divide() { int x = getm(); int y = getn(); cout << "m/n=" <<( x )/( y )<< endl; return x/y; } };
#include"base.h" #include<iostream> using namespace std; int main() { int x,y; cout<<"输入x,y"<<endl; cin>>x>>y; A a(x,y ); B b(x,y); C c(x,y); a.add(); a.minus(); b.add(); b.multiply(); c.add(); c.divide(); return 0; }
2
#pragma once #include<iostream> using namespace std; class vehicle { public: //外部接口 vehicle(int a, int b) :maxspeed(a), weight(b) { cout<<"maxspeed="<<maxspeed<<endl<<"weight="<<weight<<endl;}; void run() { cout << "run" << endl; } void stop() { cout << "stop" << endl; } ~vehicle() {} private: int maxspeed;//变量 int weight; }; class bicycle :virtual public vehicle { public: bicycle(int a, int b, int c) :vehicle(a, b) { height=c; cout << "height=" << height << endl; } ~bicycle() {} private: int height;//新增变量 }; class motorcar :virtual public vehicle { public: motorcar(int a, int b, int d) :vehicle(a, b) { seatnum=d; cout << "seatnum=" << seatnum << endl; } ~motorcar() {} private: int seatnum; }; class motocycle :public bicycle, public motorcar { public: motocycle(int a, int b, int c, int d) :vehicle(a, b), bicycle(a, b, c), motorcar(a, b, d) {}; ~motocycle() {} };
#include<iostream> #include"vehicle.h" using namespace std; int main() { int a,b,c,d; cin>>a>>b>>c>>d; bicycle A(a, b, c); A.run();A.stop(); motorcar B(a,b,c); B.run(); B.stop(); motocycle C(a,b,c,d); C.run(); C.stop(); return 0; }