C++语言程序设计

三、 应用

| 例11-35

#include "arithm.h"
#include "iostream.h"
void main()
{
arithexpr* a;
//表达式2x+3
a=new addexpr(new multiexpr(new numexpr(2),new varexpr()),new numexpr(3));
cout<<"当x=3时，2x+3="<<a->value(3)<<endl;

arithexpr* a1=new numexpr(3);
arithexpr* a2=new varexpr();
arithexpr* a3=new subexpr(a2,a1);
arithexpr* a4=new powexpr(a3,a1);
arithexpr* a5=new funcexpr(sin,a4);
cout<<"x=5时，sin((x-3)^3)="<<a5->value(5)<<endl;
cout<<"x=4时，sin((x-3)^3)="<<a5->value(4)<<endl;
}

程序中我们举了两个算术表达式计算的例子，对于不同的表达式，当变量取不同的值时，我们只需要很简单地调用value()成员函数，对表达式进行求值。在这里，我们只处理了一个变量的情形，如果是多个变量，情况就会复杂一些。