每日打卡一小时(第十七天)

一.问题描述

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; }
 
复制代码
posted @   伐木工熊大  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示