[原创]学习感受.....
我是一个菜鸟....学习到现在也有半年了,但是算法仍是可以算空白.不过,我今天不是讲算法,而是发泄一下自己的学习感受..为了大家看起轻松,我也轻松,会写得很少..对于编程,没什么好说的,其实什么语言都一样,学起很简单滴!!!常常看到飞燕的话,大概这样说:与其去弄语法,不如多学几个算法...而且我们也曾听过,算法是程序的灵魂.. 可见算法是如此重要....所以我也抓紧学习它... 然而,有人是否会混淆两个词呢----语法,语意.. 其实我的学习让我知道并不相同.如果说"一个程序=语法+算法",那么是否该说"一个好的程序=语意+算法"?我觉得,是可以这么说..下面我就举两个例子来说明:
#include<iostream>
using namespace std;
class A{
char* s;
public:
A(int size){ s=new char[size];}
A(){}
~A(){ delete [] s; }
void dump() const { cout<<s<<endl;}
void set() { cin>>s;}
};
int main(void)
{
A a_; //**
return 0;
}
上面的代码在编译期没问题, 但是执行就出现问题了.可以肯定,代码的语法没问题,但是问题就在语意上----默认构造函数和析构函数,下面我重点扩展a_对象析构函数(可能写得不好):
从** 这句:
A a_;
a_.A::A();
a_A::~A();
-----------------------------
析构函数内部:
~A()
{
if(s!=0) /*问题在这里,由于默认构造函数没有初始化s,所以s指向未知区域..于是执行_delete(s)释放这个区域是不合法滴*/
_delete(s);
}
只举这个例子了。。 学习语法很简单,但是弄清语意和算法就是下功夫的地方了...
是想写一个程序还是要写一个好的程序?我要努力了....
PS:
有什么不对请指出批评.....