罗绍鸿 发表于 2020-4-3 19:07:26

求解一道重载运算符的题目

建立点类Point,包含两个成员变量x,y,分别表示横坐标和纵坐标。要求该类可以显示点的坐标值,重载前置运算符++、--;重载后置运算符++、--。
主函数需包含的内容:创建点对象,进行前置和后置运算并显示点值。

dlnb526 发表于 2020-4-3 19:22:29

#include<iostream>
using namespace std;
class AB
{
public:
    AB(int xx, int yy);
    void ShowAB();
    AB& operator ++();
    AB operator ++(int);
    AB& operator --();
    AB operator --(int);
private:
    int x1,x2;
};
AB::AB(int xx, int yy)
{
    x1=xx;
    x2=yy;
}
void AB::ShowAB()
{
    cout<<x1<<" , "<<x2<<endl;
}
AB& AB::operator ++()
{
    x1++;
    x2++;
    return *this;
}
AB AB::operator ++(int)
{
    AB old=*this;
    ++(*this);
    return old;
}
AB& AB::operator --()
{
    x1--;
    x2--;
    return *this;
}
AB AB::operator --(int)
{
    AB old=*this;
    --(*this);
    return old;
}

int main(void)
{
    AB AA(0,0);
    AB BB(0,0);
    cout<<"A的值为:";
    AA.ShowAB();
    cout<<"B的值为:";
    BB.ShowAB();
    cout<<"B=A++运算后,A的值为:";
    (++AA).ShowAB();
    cout<<"             B的值为:";
    (BB++).ShowAB();
    cout<<"B=++A运算后,A的值为:";
    (++AA).ShowAB();
    cout<<"             B的值为:";
    (++BB).ShowAB();

    cout<<"B=A--运算后,A的值为:";
    (--AA).ShowAB();
    cout<<"             B的值为:";
    (BB--).ShowAB();
    cout<<"B=--A运算后,A的值为:";
    (--AA).ShowAB();
    cout<<"             B的值为:";
    (--BB).ShowAB();

    return 0;
}


你把类名改一下就符合了~
页: [1]
查看完整版本: 求解一道重载运算符的题目