编写一个程序 -8

计算器程序
对于计算的优先级问题,如何从输入读取包括数字和操作符在内的表达式的方法,并以一种合理的方式进行存储?
分词(tokenize):读取输入字符并组合成单词(token)
单词可以看做一个单元的一个字符序列,例如数字或者运算符。
利用(kind,value)的形式来表示单词,其中kind表示单词是一个数字、运算符还是括号。value所保存的为值(比如如果是数字那么就是数值)

如何实现这种单词?
用户自定义类型(user-defined type)

class Token
{
    public://公有成员,表示可以被访问的
    char kind;
    double value;
};

利用如下方法进行定义:

Token t;
t.kind = 't';
Token t1;
t1.kind = '8';//利用字符8来表示数值的类型
t1.value= 3.14;

Token t2 = t1;//可以直接进行拷贝初始化,这时值也会赋给t2

Token t3 = {'8',15};//直接构造Token对象

实现一个文法的程序通常被称为分析器


公有接口与私有实现
公有接口(public)一般只包含用户所需要的内容,经常是一组函数
私有接口(private)则包含实现公有函数所必须的内容,包括用于处理复杂细节的数据与函数,而这些都是用户不必知道也不应该使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值