進行單元測試,要測試乙個類的功能,下面這個測試類一共有三部分功能測試,每種測試分別在乙個函式中完成,然後可以通過鍵盤輸入控制測試模組是否執行。開始**寫成這樣
class pendulumtest感覺run函式的**太難看了,於是就使用成員函式指標改了一下:;void pendulumtest::run( void )
struct testitem修改後感覺漂亮多了。注意,「->*」操作符是通過成員函式指標呼叫成員函式的專用操作符,因為成員函式是依服於物件的,所以必須使用this指標呼叫,如果是靜態成員則不能使用成員函式指標進行呼叫,因為靜態成員函式跟普通全域性函式是一樣的,不需要依附於物件。當然使用物件的話就不用「->」而改用「.」操作符了,對應的語句改為;void pendulumtest::run( void )
, ,
, }; for(int i=0; tests[i].func != null; ++i)
}
((*this).*tests[i].func)();
像這樣進行單元測試,還可以通過乙個配置檔案控制需要測試的內容,其實每一行乙個開關就可以,通過模組名稱可以不考慮順序例如配置檔案內容為:
discrete model test:off只是對於現在這個工程不太合適,因為它要操作硬體,必須有人監控,否則可能由於程式錯誤造成硬體失控,從而損壞裝置,對於純軟體是再合適不過了。其實對於軟體做測試開關的用途就不大了,直接全部執行測試就可以了。inte***ce test:on
hardware test:on
C 多型的乙個例子
class a virtual void f2 static void f3 virtual void f4 class b virtual void f2 static void f3 virtual void f4 int main 執行結果 a f1 b f1 a f3 b f2 分析 類的成...
乙個類成員函式指標的應用例子
在c 平靜的海面底下,隱藏著許許多多暗礁,而類成員函式指標絕對是其中最險惡的之一。所以如果不幸碰到它,那麼一定要打醒十二分精神,這是我的小小體會。下面來看看乙個簡單的例子。class base virtual base public typedef void base func void setf ...
C 虛函式與繼承的乙個例子
通過隱含的this指標,也可以實現執行時多型 include class a int getdata virtual int dogetdata class b public a int dogetdata class c public b int main 這裡列印的結果是1,呼叫的是b中的get...