实验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;
    
}

 

有待完善......

posted @ 2018-06-06 22:12  hhxxr  阅读(210)  评论(0)    收藏  举报