设计并实现加法器类Adder

定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。

Adder类结构说明:

 
Adder类的数据成员包括:
①私有数据成员:数值域num(int型)。
Adder类成员函数包括:
①有参构造函数Adder(int)和拷贝构造函数Adder(const  Adder  &),其中有参构造函数参数默认值为0,输出信息“Adder Constructor run”,拷贝构造函数输出信息“Adder CopyConstructor run”
②析构函数,析构函数输出信息“Adder Destructor run”
③公有函数成员void  setNum(int)和int getNum() const分别返回和设置数值域。
④重载“+”运算符,实现两个Adder对象相加的运算
⑤重载“++”运算符,实现Adder对象自增运算
⑥公有成员函数void show() const用于显示加法器的信息,显示格式为:Adder(<数值域>)
 

裁判测试程序样例:

 
#include <iostream>
using namespace std;

/*请在这里填写答案*/

//主函数
int main(void){
    int x;
    Adder a1,a2(a1);
    cin>>x;
    (a1++).show();
    a1.show();
    a2.setNum(x);
    (++a2).show();
    a2.show();
    (a1+a2).show();
    return 0;
}
 

输入样例:

1
 

输出样例:

Adder Constructor run
Adder CopyConstructor run
Adder CopyConstructor run
Adder(0)
Adder Destructor run
Adder(1)
Adder(2)
Adder(2)
Adder Constructor run
Adder(3)
Adder Destructor run
Adder Destructor run
Adder Destructor run

daima:

class Adder
{
private:
int num;
public:
Adder(int n=0);
Adder(const Adder &P);
~Adder();
void setNum(int n1);
int getNum() const;
void show() const;
Adder operator+(Adder &a2);
Adder& operator++();
Adder operator++(int);

};

Adder::Adder(int n)
{
num=n;
cout<<"Adder Constructor run"<<endl;
}
Adder::Adder(const Adder &P){
num=P.num;
cout<<"Adder CopyConstructor run"<<endl;
}
Adder::~Adder()
{
cout<<"Adder Destructor run"<<endl;
}
void Adder::setNum(int n1)
{
num=n1;
}
int Adder::getNum() const
{
return num;
}
Adder Adder::operator+(Adder &a2)
{
return Adder(num+a2.num);
}
Adder& Adder::operator++()
{
++num;
return *this;
}
Adder Adder::operator++(int)
{
Adder a=*this;
++(*this);
return a;

}
void Adder::show() const
{
cout<<"Adder"<<"("<<num<<")"<<endl;
}

posted @ 2023-05-13 23:46  千恒  阅读(90)  评论(0编辑  收藏  举报