5.11
一.问题描述
pta多态实验:
1.定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。
#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 { int num; public: Adder(int n=0); Adder(Adder &p);
Adder(Adder&&); void setNum(int x); int getNum()const; Adder operator+(const Adder &c)const; Adder operator++ (int); Adder& operator++(); void show()const; ~Adder(); }; Adder::Adder(int n):num(n) { cout<<"Adder Constructor run"<<endl; } Adder::Adder(Adder &p) { this->num=p.getNum(); cout<<"Adder CopyConstructor run"<<endl; } void Adder::setNum(int x) { num=x; } int Adder::getNum() const { return num; } Adder Adder::operator+(const Adder &c)const { return Adder(this->num+c.getNum()); } Adder& Adder::operator++() { num++; return *this; } Adder Adder::operator++(int) { Adder m=*this; ++(*this); return m; } void Adder::show()const { cout<<"Adder("<<num<<")"<<endl; } Adder::~Adder() { cout<<"Adder Destructor run"<<endl; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)