軟件測試作業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文件中,最終編譯通過。
軟件測試作業1 -- 關於c++項目中類相互調用的問題與解決