花了一晚上的时间把程序调通~~~~
来源:互联网 发布:湖南本地造价软件 编辑:程序博客网 时间:2024/04/29 20:36
今天这个程序花时间好长啊
有了一点程序的心得
1。一定要先懂得程序的框架,这样才能事半功倍
2。良好的书写习惯是必须的
3。在类里面的函数实现用写在程序最后的显式的方式书写
4。括号要写清楚
5。变量名和类名不要起类似接近的名字,要有代表意义
6。函数的参量是不是指针要清楚
代码如下:
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
//中间层计数类
class Expr_node {
friend ostream& operator<< (ostream& ,const Expr_node& );
friend class Expr;
public:
int use; //计数器
virtual void print(ostream&) const=0;
protected:
Expr_node():use(1){}
virtual ~Expr_node();
};
// 句柄类
class Expr {
friend ostream& operator<<(ostream&,const Expr&);
public:
Expr_node* p;
Expr(int);
Expr(const string& ,Expr);
Expr(const string& ,Expr ,Expr ) ;
Expr(const Expr& t) { p=t.p;++(p->use);}
Expr& operator=(const Expr& );
~Expr(){if(--p->use==0) delete p;}
};
//下面生成具体的类
class Int_node:public Expr_node{
friend class Expr;
int n;
Int_node(int k):n(k){}
void print(ostream& o) const {o<<n;}
};
class Unary_node:public Expr_node{
friend class Expr;
string op;
Expr opnd; //将Expr_node改为Expr
Unary_node(const string& a,Expr b):op(a),opnd(b){}
void print(ostream& o) const {o<<"("<<op<<opnd<<")";}
};
class Binary_node:public Expr_node{
friend class Expr;
string op;
Expr left; //原来是Expr_node* left;,因加入句柄而改为现在语句
Expr right;
Binary_node(const string& a,Expr b,Expr c):op(a),left(b),right(c){}
void print(ostream& o) const {o<<"("<<left<<op<<right<<")";}
};
//句柄类续
Expr::Expr(int n)
{
p=new Int_node(n);
}
Expr::Expr(const string& op,Expr t)
{
p=new Unary_node(op,t);
}
Expr::Expr(const string& op,Expr left,Expr right)
{
p=new Binary_node(op,left,right);
}
Expr& Expr:: operator=(const Expr& t){
t.p->use++;
if(--p->use==0)
delete p;
p=t.p;
return *this;}
//重载<<
ostream& operator <<(ostream& o,const Expr& t)
{
t.p->print(o);
return o;
}
- 花了一晚上的时间把程序调通~~~~
- Java集合小总结(花了一晚上的时间)
- 花了一晚上学的php程序
- 花了一下午一晚上的时间,将自己的博客美化完毕
- 忙了一晚上,终于把想做的事情做完了,就等明天看效果了,哈哈。
- 搞了一晚上的RSS阅读器
- 看了一晚上的huibian
- 关了一晚上的机
- 无所事事了一晚上
- 忙了一晚上
- 花了一晚上时间写了个ASN.1语法中TAG值计算工具,有图有源码!!!
- 当了一晚上的和尚,我后悔了
- 用手机控制你的鼠标!花了三个晚上无线鼠标程序(源码)
- 花了一晚上做计算机的布局 仅仅是布局呀~~~
- 让我纠结了一晚上的via协议
- 颓废的一晚上
- 一晚上的成果
- 我们学校一到晚上11点多就把我们园区的网断了,联校园网都上不了,请问怎样可以破解啊?
- Asterisk SIP media path
- Android引入第三方jar包的方法
- 1.76可以用吗?
- 大量用户图片管理
- 在Wince下如何实现数据存储到数据库中
- 花了一晚上的时间把程序调通~~~~
- Asterisk config sip.conf
- C语言的全局变量和局部变量
- sqlserver锁
- MeetMe-Web-Control
- #ifdef
- C#串口通讯 接收数据问题
- Performance Results for OpenSER and SIP Express Router
- java 五个有用的过滤器