首页 > 其他分享 >每日打卡一小时(第十七天)

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

时间:2023-04-26 19:33:26浏览次数:32  
标签:const show int 每日 第十七 ++ Adder operator 打卡

一.问题描述

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);
    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;
}
 

标签:const,show,int,每日,第十七,++,Adder,operator,打卡
From: https://www.cnblogs.com/zhenaifen/p/17357065.html

相关文章

  • 周三打卡
    题目描述:设计一个能够模拟餐厅点餐流程的程序,需要实现以下功能:显示菜单:输出餐厅提供的所有菜品及其价格。点餐:输入菜品名称和数量,将菜品添加到订单中。修改订单:输入菜品名称和数量,修改订单中已有的菜品的数量。删除订单:输入菜品名称,将菜品从订单中删除。订单总价:计算订单中......
  • 每日打卡-14
    一.问题描述  请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()。  在此基础上,通过继承Rectangle得到一个新的类Square,然后在Shape中增加一个函数intgetVertexCount()const用来获得当前......
  • c++打卡第十六天
    一、问题描述。  二、设计思路。①、我们可以写出最终获得利息加本金的公式,即两千乘以利息加上其所存的年限,其中年限可以通过20除以不同的年限求得最大值。②、获取各个年范围后,使用for循环穷举出每种情况所得的最终金额,同时打印出当所获得金额最大时,每个不同的存钱方案是......
  • 打卡4(java)
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);inta=sc.nextInt(),b=sc.nextInt();intc=sc.nextInt(),d=sc.nextInt();intx=a*60+b,y=c*60+d;......
  • 编程打卡:来玩玩Ruby语言吧2.1!
    编程打卡:来玩玩Ruby语言吧2.1!我们前面实现了一个有趣的树类Tree,但它不具有简洁的用户接口,来设置一棵新树,为它写一个初始化方法,接受散列表和数组嵌套的结构。写好之后,你可以这样设置新树:{'grandpa'=>{'dad'=>{'child1'=>{},'child2'=>{}},'uncle'=>{'child3�......
  • 打卡第十二天
    输入一个8位二进制数,将其转换为十进制输出一、1.将二进制数每一位乘以该位的2的次方相加- 二、三、#include<iostream>usingnamespacestd;doublepower(doublex,intn){ doubleq=1.0; while(n--) q*=x; returnq;}intmain(){ intq=0; cout<<"输入数字:"; for(inti......
  • 4.26打卡
    #include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;constdoubleTINY_VALUE=1e-10;doubletsin(doublex){doubleg=0;doublet=x;intn=1;do{g+=t;n++;t=-t*x*x/(2*......
  • 2023/4/25每日随笔
        今天,上午上机数据库,了解了数据库的数据库操作的sql语句的select关于from,groupby,orderby,联合多表查询等等,添加语句,删除语句,删除表结构等等对于以后项目的有用的操作,晚上又看了看数据库,准备完成第一张内容的编写,数据是描述事务的符号表示,数据库是存储数据的仓库,只不......
  • 每日八股文之Java
    1、请你说说ConcurrentHashMap数组+链表+红黑树、锁的粒度ConcurrentHashMap的底层数据结构与HashMap一样,也是采用“数组+链表+红黑树”的形式采用锁定头节点的方式降低了锁粒度,以较低的性能代价实现了线程安全。它的线程安全的实现机制:初始化数组或头节点时,ConcurrentHa......
  • 第八天打卡
    #include<iostream>#defineN10usingnamespacestd;intmain(){inta[N],x,i,aa;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=1;i<=N-1;i++)for(x=0;x<N-i;x++){if(a[x]<a[x+1]){......