c++的重载在计算器中的应用

本文探讨了C++中函数重载的概念及其在计算器实现中的具体应用,通过不同数值代表不同符号的实例,展示了如何利用重载提高计算器效率并方便使用。通过为数字和长整数提供专门的压栈和弹栈函数,有效实现了中缀表达式到后缀表达式的转换以及后续的计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++的重载是指同一函数名可实现不同的功能,成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。

 

本次计算器中,中缀转后缀需要进行符号压栈,而计算的时候需要数字的计算,而栈的实现可以通过重载来实现,即提高效率又能更方便的使用。

示例如下:

bool Push(double i){  //不同数值代表不同符号
        lnkNode *tmp=new lnkNode(i);
        tmp->Setnext(top);
        top=tmp;
        size++;
        return true;
    }
    bool Push(long n,long d){
        lnkNode *tmp=new lnkNode(n,d);
        tmp->Setnext(top);
        top=tmp;
        size++;
        return true;
    }
    bool Pop(double &item){
        lnkNode *tmp;
        if(0==size){
            printf("emptyerror");
            return false;
        }
        item=top->Getinfo();
        tmp=top->Getnext();
        delete top;
        top=tmp;
        size--;
        return true;
    }

    bool Pop(long &n,long &d){
        lnkNode *tmp;
        if(0==size){
            printf("emptyerror");
            return false;
        }
        n = top->Getnt();
        d = top->Getdt();
        tmp = top->Getnext();
        delete top;
        top = tmp;
        size--;
        return true;
    }

 

转载于:https://www.cnblogs.com/ljx1412/p/5270897.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值