设计并实现加法器类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
class Adder
{
private:
int num;
public:
Adder(int x=0)
{
num=x;
cout<<"Adder Constructor run"<<endl;
}
Adder(const Adder &p)
{
num=p.num;
cout<<"Adder CopyConstructor run"<<endl;
}
~Adder()
{
cout<<"Adder Destructor run"<<endl;
}
void setNum(int x)
{
num=x;
}
int getNum() const
{
return num;
}
Adder operator+(Adder & p)
{
Adder q;
q.num=num+p.num;
return q;
}
Adder& operator++()//前置++
{
++num;
return *this;
}
Adder operator++(int)//后置++
{
Adder tmp = *this;
++(*this);//利用前置++
return tmp;
}
void show() const
{
cout<<"Adder("<<num<<")"<<endl;
}
};