文件分离感想
首次用.h和.cpp分离,虽然用起来磕磕绊绊,但写完之后对于后续要对这个程序进行改进的人来说,确实更加清晰,毕竟声明和运算分开了,也不用在整个main函数里没有没脑的找定义。
这次写的程序比较简单,还体现不出public和private分开的必要性,甚至一开始我一直在纠结到底要把什么定义为private。这里和外界有交集的是用户需要输入半径,以及程序输出面积,所以用来接收的R和用来输出的函数就不能设置成private。不过用来运算的变量r就可以设置成private,到时候用R内部调用一下赋值给它就可以了,然后用来算面积的那个函数也从内部调用一下r,就不用R,再顺带输出。
我发现就是为.h写的.cpp文件,可以用来写各函数的具体运算内容,以及成员变量之间的相互调用,但还是和主函数有很大差别。比如我遇到的一个问题就是那个.cpp文件里面的函数不会自己调用,就像外函数一样没有具体的调用语句就不会运行。但是一开始我很蠢,.cpp里写了这一段代码:
Circel::circel(double R) //所有的circle都打错成circel了。。。。
{
this->r=R;
}
double Circel::Area()
{
return 3.14 * r * r;
}
然后就直接在mian.cpp文件里写
cin >> R;
cout << "AREA=" << a.Area() <<endl;
我没有调用circel(double R)函数就妄图然它自己赋值给r,结果一直输出0,特别无语。
这是我遇到的最无奈的错误,除了这个问题之外其他的倒没什么。还有就是在调用对象里的变量也好,函数也好,都要像调用结构体那样。有三种形式,在谭浩强那本书上P231。
还有一个问题,就是我用的是vs6.0,我把所有的代码都打完之后,运行也没问题了,就关掉了。等我再打开的时候,发现file里面.h配套的.cpp文件不见了,然后整个程序就不能运行了。我不知道别人会不会这样,我要添加也添加不了,可能是当初安装的时候出问题了。所以我现在正在改装eclipse,不过那个真的好麻烦。。。