类pic有三个私有数据成员x(int),y(int),z(double),用此类描述两个对象A和B。程序中需要重载”+”完成运算符A+B。
要求:
(1)A+B相加后x为两个对象x值相乘,y为两个对象y值相加的1/2,z为两个对象z值zz。
(2)重载”+”写成成员函数,在类里声明类外定义,声明如下
pic pic::operator +(const pic &pict);
(3)定义带参数的构造函数,两个对象实参分别为(2,20,3),和(6,40,2)。
z为两个对象z值zz
==这是啥意思?
另外相加后的值是否要修改当前类的x,y,z值,还是只是作为返回的pic对象值
参考:
class pic
{
private:
int x,y;
double z;
public:
pic() {}
pic(int a,int b,double c) : x(a),y(b),z(c) {}
pic operator+ (const pic&pict);
void printData() {cout<<"x="<<x<<",y="<<y<<",z="<<z<<endl;}
};
pic pic::operator+(const pic & pict)
{
pic c;
c.x = x * pict.x;
c.y = (y+pict.y)/2;
c.z = z + pict.z;
return c;
}
int main()
{
pic A(2,20,3);
pic B(6,40,2);
pic c = A+B;
c.printData();
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!