实验6 类的继承和多态

//6-1
#include <iostream> using namespace std; class A{ public: A(int a,int b):m(a),n(b){} int add(){ cout<<"m+n= "<<m+n<<endl; } private: int m,n; }; class B:public A{ public: B(int a,int b):A(a,b){ m=a; n=b; } int minus(){ cout<<"m-n= "<<m-n<<endl; } private: int m,n; }; class C:public A{ public: C(int a,int b):A(a,b){ m=a; n=b; } int multiply(){ cout<<"m*n= "<<m*n<<endl; } private: int m,n; }; class D:public A{ public: D(int a,int b):A(a,b){ m=a; n=b; } int division(){ cout<<"m/n= "<<m/n<<endl; } private: int m,n; }; int main(){ B b(30,15); b.add(); b.minus(); C c(30,2); c.add(); c.multiply(); D d(30,3); d.add(); d.division(); return 0; }

//6-2
#include <iostream>
using namespace std;
class vehicle{
    public:
        vehicle(int m,int w):maxspeed(m),weight(w){
            cout<<"maxspeed= "<<maxspeed<<endl;
            cout<<"weight= "<<weight<<endl;
        }
        ~vehicle(){}
        void run(){
            cout<<"run"<<endl;
        }
        void stop(){
            cout<<"stop"<<endl;
        }
    private:
        int maxspeed,weight;
}; 
class bicycle:virtual public vehicle{
    public:
        bicycle(int m,int w,int h):vehicle(m,w){
            height=h;
            cout<<"height is:"<<height<<endl;
        }
        ~bicycle(){}
    private:
        int height;
};
class motorcar:virtual public vehicle{
    public:
        motorcar(int m,int w,int s):vehicle(m,w){
            seatnum=s;
            cout<<"seatnum is "<<seatnum<<endl;
        }
        ~motorcar(){}
    private:
        int seatnum;
};
class motorcycle:public bicycle,public motorcar{
    public:
        motorcycle(int m,int w,int h,int s):vehicle(m,w),motorcar(m,w,s),bicycle(m,w,h){}
        ~motorcycle(){}
};
int main(){
    vehicle v(150,100);
    v.run();
    v.stop();
    motorcar a(100,75,2);
    a.run();
    a.stop();
    bicycle b(50,30,1);
    b.run();
    b.stop();
    motorcycle c(100,50,1,2);
    c.run();
    c.stop();
    return 0;
}

 

猜你喜欢

转载自www.cnblogs.com/perservence/p/9152700.html