设计并实现加法器类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;
}