设计并实现加法器类Adder

发布时间 2023-04-24 21:35:50作者: jmhyyds

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

 

class Adder
{
private:int num;
public:
Adder(int x=0):num(x){
cout<<"Adder Constructor run"<<endl;
}
Adder(const Adder &A){
num=A.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+(const Adder &c2){
this->num=c2.num+this->num;
return (Adder(getNum()));
}
Adder& operator++(void)
{
num++;
return *this;
}
const Adder operator++(int){
Adder ad=*this;
++(*this);
return ad;

}

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