1. 定义一个2*2矩阵类,重载运算符“==”,用来判断两个矩阵是否相同。
2. 设计一个基类Base,它有x和y两个私有数据成员,成员函数add( )用来求解数据成员之和;A类继承Base类,添加一个数据成员z,重写add函数求解数据成员之和;B类继承A类,添加一个数据成员c, 重写add函数求解数据成员之和。在主函数中分别创建Base类、A类、B类的对象分别调用add函数。
3. 定义一个A类,数据成员:int a;定义一个B类,数据成员:int b;定义一个C类,继承A类和B类,并新增数据成员 int c,定义一个成员函数count用来计算并输出a+b+c之和。在主函数中定义C类对象c1,并调用count函数。
4. 编写程序:
(1)定义抽象类Auto,包含车牌号、车轮数数据成员,输出车辆信息的纯虚函数showInfo
(2)以Auto类为基类,派生出派生类Car(小客车类),并为其增加颜色数据成员,用showInfo函数输出小客车信息。
(3)在main函数中进行测试。
你把问题分开提问吧,四个一起很少有人愿意给你答。
题目1:
//题目1
class Matrix
{
private:
int a[2][2];
public:
Matrix()
{
for (int i = 0; i < 2; i++)
{
for(int j = 0; j < 2;j++)
a[i][j] = 0;
}
}
Matrix(int b[],int n = 4)
{
for (int i = 0; i < 2; i++)
{
for(int j = 0; j < 2;j++)
a[i][j] = b[i*2+j];
}
}
void getData(int arr[2][2])
{
for (int i = 0; i < 2; i++)
{
for(int j = 0; j < 2;j++)
arr[i][j] = a[i][j];
}
}
bool operator ==(Matrix &s)
{
int ss[2][2];
s.getData(ss);
for (int i = 0; i < 2; i++)
{
for(int j = 0; j < 2;j++)
if(a[i][j] != ss[i][j])
return false;
}
return true;
}
};
题目2:
#include <iostream>
using namespace std;
class Base
{
private:
int x,y;
public:
Base(){}
Base(int a,int b){x =a;y=b;}
int add(){return x+y;}
};
class A:public Base
{
private:
int z;
public:
A():Base(){}
A(int a,int b,int c):Base(a,b){z = c;}
int add(){return z + Base::add();}
};
class B:public A
{
private:
int c;
public:
B():A(){}
B(int x1,int y1,int z1,int c1):A(x1,y1,z1){c = c1;}
int add(){return c + A::add();}
};
int main()
{
A a(2,3,4);
B b(2,3,4,5);
printf("%d\n",a.add());
printf("%d\n",b.add());
return 0;
}
题目3:
#include <iostream>
using namespace std;
class A
{
protected:
int a;
public:
A(){}
A(int x){a = x;}
};
class B
{
protected:
int b;
public:
B(){}
B(int x){b = x;}
};
class C :public A ,public B
{
private:
int c;
public:
C(){}
C(int x,int y,int z):A(x),B(y){c = z;}
int count(){return a + b +c;}
};
int main()
{
C c(1,2,3);
printf("%d\n",c.count());
return 0;
}
题目4: