定义复数类,数据成员包括实部和虚部;成员函数有构造函数,带默认参数值(1,1)。以成员函数或友元函数的方式重载+运算符,实现两个复数相加的功能。还有一个成员函数,输出复数a+bi。
编写主程序测试复数相加,输入4个整数,分别作为两个复数的实部和虚部,如果第3个整数为-1000,则使用输入的前两个整数构造一个复数,利用默认参数构造另一个复数,并相加。最后输出两个复数之和。(2分)
方法1 友元函数
#include <iostream>
#include <cstring>
using namespace std;
class complex_num
{
public:
complex_num(int i=1,int j=1)
{
r=i;c=j;
}
friend complex_num operator +(complex_num &a,complex_num &b)
{
return complex_num(a.r+b.r,a.c+b.c);
}
void show()
{
cout<<r<<'+'<<c<<'i'<<endl;
}
private:
int r,c;
};
int main()
{ int a,b,c,d;
cin>>a>>b>>c>>d;
complex_num c1(a,b),c2(c,d),c3,c4;
if(c==-1000)
{
c4=c1+c3;
c4.show();
}
else{
c3=c1+c2;
c3.show();
}
}
方法2 成员函数
#include <iostream>
#include <cstring>
using namespace std;
class complex_num
{
public:
complex_num(int i=1,int j=1)
{
r=i;c=j;
}
complex_num operator +(complex_num &a)
{
return complex_num(a.r+r,a.c+c);
}
void show()
{
cout<<r<<'+'<<c<<'i'<<endl;
}
private:
int r,c;
};
int main()
{ int a,b,c,d;
cin>>a>>b>>c>>d;
complex_num c1(a,b),c2(c,d),c3,c4;
if(c==-1000)
{
c4=c1+c3;
c4.show();
}
else{
c3=c1+c2;
c3.show();
}
}
定义屏幕上的坐标点point为类类型,数据成员包括x坐标、y坐标、颜色,均为私有成员;成员函数有构造函数,带默认参数值(0,0,255),会输出提示信息“point(x,y,color)”,其中x,y,color输出实际值。还有getx和gety以及getColor函数,分别返回3个数据成员的值,析构函数中输出提示信息“point~~~”。
定义矩形类,数据成员包括左上角的坐标点(内嵌point类对象),还有矩形的长、宽;成员函数有构造函数,会输出提示信息“rect”,信息输出函数,输出矩形的x坐标、y坐标、长、宽,析构函数中输出提示信息“rect~~~”。
编写主程序,读取用户输入的x坐标、y坐标、长、宽的值,定义矩阵类对象,然后调用信息输出函数,测试类的组合应用。(3分)
#include <iostream>
#include <cstring>
using namespace std;
class pointer{
public:
pointer(int xx=0,int yy=0,int ccolor=255)
{
x=xx;y=yy;color=ccolor;
cout<<"point("<<xx<<','<<yy<<','<<color<<')'<<endl; }
int getx()
{
return x;
}
int gety()
{
return y;
}
int getcolor()
{
return color;
}
~pointer()
{
cout<<"point~~~"<<endl;
}
private:
int x,y,color;
};
class rec{
public:
rec(int xx,int yy,int ll,int ww):p1(xx,yy)
{
l=ll;w=ww;
cout<<"rect"<<endl;
}
void show()
{
cout<<p1.getx()<<','<<p1.gety()<<','<<l<<','<<w<<endl;
}
~rec()
{
cout<<"rect~~~"<<endl;
}
private:
pointer p1;
int l;
int w;
};
int main()
{ int a,b,c,d;
cin>>a>>b>>c>>d;
rec myrec(a,b,c,d);
myrec.show();
}