發現C++的錯誤確實比Java的要難以調試 VS 重構的技巧

問題是這樣的,首先我在all_my_func.h頭文件中做了如下定義,紅色的部分少了一個分號。

 

#ifndef _ALL_MY_FUNC_H
#define _ALL_MY_FUNC_H

int test_list_80()

#endif /* _ALL_MY_FUNC_H */

另一個文件中這樣使用。

#include "all_my_func.h"
#include <iostream>
using namespace std;

int main(int argc, char** argv) {
        test_list_80();
};

 

結果編譯的時候發現了一些奇奇怪怪的錯誤,試着將上面藍色部分註釋掉,因為我根本沒有使用iostream,發現錯誤成了另一堆,還是看不懂,再註釋掉紅 色的不錯,錯誤信息又變了一堆,而所有這些原因都出在哪一個分號上,這種include出來的問題,還好java裏面不會發生了。

 

排查這種錯誤的時候,重構的小步前進的思想派上了用場 ,在寫下剛才那部分代碼的時候,只改動了兩個地方,所以我很容易的便找到了這個bug,

 

以前在學校裏什麼都沒有體會,今天工作了才發現,重構對我這樣毛毛愣愣的程序員是多麼的重要。