软件测试作业1 -- 关于c++项目中类相互调用的问题与解决

       在上学期c++的课程中,老师留了三个大项目和一些小作业,这些项目对于我来说都是很有意义的,

在完成作业的过程中不断的提升编程能力是一件令人高兴的事情,每一次的作业其实都有很多的小问题,

要么在编译出现问题,要么在程序运行之后直接出现死循环,或者由于指针问题程序整个卡掉,此时便需要在

程序的每一个可能出错的步骤前后测试输出看程序到底错在了哪,所以说学会如何测试还是非常重要的,往往有可能事半功倍。

意义尤为深刻的是在完成一个关于c++中json实体类的实现的过程中,遇到了类的相互调用的难题,花费了一定的时间。

(Json实体类Object和值类Value,数组类Array,类的大致变量定义声明是Array : vector<Value>;   Value:int ,double,Array ;   Object:Map<string ,value> )

       作业一开始自己是将三个类在一个.cpp文件中实现,发现将类的各种函数声明写好之后出现了问题(因为类里相互调用了所以

编译错误是Value类未声明之类),尝试在网上搜索解决方法,然后又结合c++类的理解,所以找到解决方法,在程序的最

开始即类的实现之前加入三个简单的声明  class Array,  class Object, class Value,程序最终编译通过。

       而后来由于程序规范化的需要,我将三个类分别拆开写了,所以对于每个类都定义了.cpp和.h文件,在这些文件中类的相互调用

又成为了一个很棘手的问题,按照之前合写在一个cpp上的经验,我先在每个类的.h文件中加入了除去本身类的其他需要调用的类

的声明,然后按照一直以来的经验,例如在Array.cpp中加入了include "Array.h"的头文件,发现编译不通过,最后在Array.cpp中

增加需要调用的类的.h文件中,最终编译通过。

原文地址:https://www.cnblogs.com/lvlm/p/7732647.html