#ifndef ABC_H_
#define ABC_H_
using namespace std;
class ADD{
public:
void add(int x,int y);
private:
int m,n;
};
class A:public ADD{
public:
void substract(int x,int y);
private:
int m,n;
};
class B:public ADD{
public:
void multiply(int x,int y);
private:
int m,n;
};
class C:public ADD{
public:
void division(int x,int y);
private:
int m,n;
};
#endif
#include"ABC.h"
#include<iostream>
using namespace std;
void ADD::add(int x,int y) {
m=x;n=y;
cout<<m+n;
}
void A::substract(int x,int y){
m=x;n=y;
cout<<m-n;
}
void B::multiply(int x,int y){
m=x;n=y;
cout<<m*n;
}
void C::division(int x,int y){
m=x;n=y;
cout<<m/n;
}
#include<iostream>
#include"ABC.h"
using namespace std;
int main(){
A a1;
B b1;
C c1;
a1.add(2,3);
cout<<endl;
b1.multiply(3,4);
cout<<endl;
c1.division(4,2);
return 0;
}
#ifndef VEHICLE_H_
#define VEHICLE_H_
using namespace std;
class vehicle{
public:
vehicle(int x,int y):maxspeed(x),weight(y){cout << "maxseppd=" << maxspeed << endl<< "weight= " << weight << endl;};
void run(){ cout << "run" << endl; };
void stop(){ cout << "stop" << endl; };
~vehicle(){}
private:
int maxspeed,weight;
};
class bicycle:virtual public vehicle{
public:
bicycle(int x,int y,int z):vehicle(x,y),height(z){ cout << "height=" <<height << endl; };
~bicycle(){}
private:
int height;
};
class motorcar:virtual public vehicle{
public:
motorcar(int x,int y,int z):vehicle(x,y),seatnum(z){ cout << "seatnum=" <<seatnum << endl; };
~motorcar(){}
private:
int seatnum;
};
class motorcycle:public bicycle,public motorcar{
public:
motorcycle(int a, int b, int c, int d) :bicycle(a, b, c), motorcar(a, b, d) {};
};
#endif
#include<iostream>
#include"vehicle.h"
using namespace std;
int main(){
motorcycle m1(1,2,3,4);
m1.run();
m1.stop();
return 0;
}
#include <iostream>
using namespace std;
class fraction{
public:
fraction(int x=0,int y=0):a(x),b(y){}
fraction operator+ (fraction &f2)const;
fraction operator- (fraction &f2)const;
fraction operator* (fraction &f2)const;
fraction operator/ (fraction &f2)const;
private:
int a;int b;
};
fraction fraction::operator+ (fraction &f2)const{
return fraction(a+f2.a,b+f2.b);
}
fraction fraction::operator- (fraction &f2)const{
return fraction(a-f2.a,b-f2.b);
}
fraction fraction::operator* (fraction &f2)const{
return fraction(a*f2.a,b*f2.b);
}
fraction fraction::operator/ (fraction &f2)const{
return fraction(a/f2.a,b/f2.b);
}
class ifraction:public fraction{
public:
void show(){
cout<<a"和"b;
}
};
int main(){
fraction f1(6,3);
ifraction f2(9,3);
return 0;
}
最后一个代码说我的a,b定义为私有函数有问题 可我不知道为什么、
通过这次实验我明白了继承和派生在以后的代码的简洁方面有大用处,尤其是公司里面。
原文:https://www.cnblogs.com/lxy020508/p/9150603.html