• 2017《面向对象程序设计》课程作业二


    GitHub链接

    文件分离感想

    首次用.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,不过那个真的好麻烦。。。

  • 相关阅读:
    UVa 1643 Angle and Squares
    UVa 1210 (高效算法设计) Sum of Consecutive Prime Numbers
    UVa 1213 (01背包变形) Sum of Different Primes
    UVa 1644 (筛素数 + 二分) Prime Gap
    UVa 10048 (Floyd变形) Audiophobia
    UVa 247 (传递闭包) Calling Circles
    UVa 808 (建坐标系、找规律) Bee Breeding
    UVa 1151 (枚举 + MST) Buy or Build
    UVa 1395 (最小生成树) Slim Span
    UVa 11040 (水题) Add bricks in the wall
  • 原文地址:https://www.cnblogs.com/s0316026/p/6774194.html
Copyright © 2020-2023  润新知