C++程序设计实践-6

 

C++程序设计实践-6_第1张图片

#include
using namespace std;
class base{
	public:
	base(int a,int b);
	void add();
	private:
		int m;
		int n;
}; 

class chipA:public base{
	public:
		chipA(int a,int b);
		void min();
	private:
		int m;
		int n;
			
};

class chipB:public base{
	public:
		chipB(int a,int b);
		void tim();
	private:
		int m;
		int n;
};

class chipC:public base{
	public:
		chipC(int a,int b);
		void div();
	private:
		int m;
		int n;
};

base::base(int a,int b):m(a),n(b){
};
void base::add(){
	cout<

 

错误:

改正:

#include

 

编程时发现了以上错误,学习过程发现这个error成因很复杂,但尝试这样修改则编译通过,但仍不知错误原因,希望有同学帮我解答。

C++程序设计实践-6_第2张图片

 

 

 

C++程序设计实践-6_第3张图片

 
#include
using namespace std;

//类的定义 
class vehicle{
public:
     vehicle(int max,int wei);
     void run();
     void stop();
     int maxspeed;
     int weight;
     ~vehicle();
};

class bicycle:virtual public vehicle{
public:
     bicycle(int max,int wei,int hei);
     int height;
     ~bicycle();
};

class motorcar:virtual public vehicle{
public:
     motorcar(int max,int wei,int sea);
     int seatnum;
     ~motorcar();
};

class motorcycle:public bicycle,public motorcar{
public:
     motorcycle(int max,int wei,int hei,int sea);
    ~motorcycle();
};

//类的实现 
vehicle::vehicle(int max,int wei):maxspeed(max),weight(wei){
     cout<

 

C++程序设计实践-6_第4张图片

这一题我尝试把62行改为以下形式(想写少一点),编译一大堆报错,证明类的多重继承必须这样写:

C++程序设计实践-6_第5张图片

 

 

 

 

 

C++程序设计实践-6_第6张图片

 

C++程序设计实践-6_第7张图片

#include
#include
using namespace std;

//类的定义
class Fraction {
	public:
		Fraction(int a=0,int b=1):top(a),bottom(b){}
		Fraction operator+(const Fraction &c1);
		Fraction operator-(const Fraction &c2);
		Fraction operator*(const Fraction &c3);
		Fraction operator/(const Fraction &c4);
		void output();
	private:
		int top;
		int bottom;
};

//类的实现
Fraction Fraction::operator+(const Fraction &c1){
	return Fraction(top*c1.bottom+bottom*c1.top,bottom*c1.bottom);
}

Fraction Fraction::operator-(const Fraction &c2){
	return Fraction(top*c2.bottom-bottom*c2.top,bottom*c2.bottom);
}

Fraction Fraction::operator*(const Fraction &c3){
	return Fraction(top*c3.top,bottom*c3.bottom);
}

Fraction Fraction::operator/(const Fraction &c4){
	return Fraction(top*c4.bottom,bottom*c4.top);
}

void Fraction::output(){
    cout<

 


 

 

C++程序设计实践-6_第8张图片

 

这次实验更加注重代码的简洁性和规范性。实验过程遇到了一些问题,都写在上面了,希望老师同学能帮我解答。

 

 

 

 

 

你可能感兴趣的:(C++)