程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 對C/C++概念介紹

對C/C++概念介紹

編輯:C++入門知識

對第一次接觸到C/C++的用戶和學者來說,了解C/C++的概念是非常重要的,那麼就先說一下什麼是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。。。
如果使用VC6,那麼直接用VC6打開VC工程文件,選擇Batch Build最好自己對工程參數重新設置一下),然後就可以在源代碼包子目錄Lib中得到我們需要的庫文件。如果使用C/C++,那麼用VC8打開VC6工程文件,並按提示直接轉換成.net版本。

同樣,選擇批生成,生成我們需要的庫文件。在VC8中編譯源代碼時會出現編譯錯誤“#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids”,將version("7.0")改為version("8.0")即可。

在開發應用程序過程中,我們可能會使用到很多第三方程序庫,如這裡的CppUnit。為了方便,我們可以建立一個第三方程序庫的專用文件夾,並為具體的程序庫如這裡的CppUnit)建立子文件夾。然後在VC的Option中分別設置庫的頭文件路徑和庫文件連接路徑。

如果有Dll文件,則在系統變量PATH中加進DLL文件所在目錄,這樣,程序運行時就能搜索到該C/C++注意,只有VC重啟後,PATH設置才會對從VC裡直接運行的程序生效)。

同樣,這裡我們也把CppUnit的頭文件和庫文件路徑加到VC的默認搜索路徑中。另外,需要指出,一般情況下,Dll文件是需要與生成的程序一同發布的,此時就必須將Dll文件拷貝到Project目錄中。此時,可以采取手動方式,也可以在Project的Post-Build Step中添加命令執行拷貝動作。

在VC中使用CppUnit進行單元測試時,可以選擇CppUnit的控制台測試作界面和圖形測試界面。控制台界面簡潔,而圖形界面較直觀,並且借助CppUnit提供的插件可以快速定位到斷言失敗的地方。一般情況下。

  • C++語言的過人之處
  • 為程序員解憂的C++語言
  • 對C++Test詳細介紹
  • 學習C++語言時注意事項
  • Scala Actor與底層並發編程機制異同之探

我們使用控制台測試界面來測試Console程序,使用圖形測試界面來測試GUI程序,這樣測試Project不會影響被測試的Project。由於圖形測試界面的易用性,我們可能也希望用它來測試Console程序,此時稍微麻煩一點。下面分別介紹這幾種用法以VC6為例,VC8類似)。

在下面的敘述中,把被測試Project叫做目標Project,把被測試類叫做目標類。使用CppUnit的Console測試界面測試Console程序
1. 創建一個工作區用於開發和測試,然後在該工作區中分別創建兩個Project,一個用於開發,另一個用於測試。

2. 在測試Project中,設置如下:
1)設置連接庫:cppunit.libRelease版)和cppunitd.libDebug版),或者使用動態鏈接庫版本cppunit_dll.lib、cppunit_dll.dll和cppunitd_dll.lib、cppunitd_dll.dll;
2)在C/C++Code Generation中設置Use run-time library為Multithreaded DllRelease版)和Debug Multithreaded DllDebug版)。

3. 為測試Project添加測試類,假如被測試的目標類為Demo,那麼可以定義一個DemoTest的測試類:

  1. class DemoTest: public CppUnit::TestFixture  
  2. {  
  3.     CPPUNIT_TEST_SUITE(DemoTest);  // 參數為本測試類名  
  4.     CPPUNIT_TEST(testFunc);        // 參數為測試函數名,與下面聲明的測試函數對應  
  5.     CPPUNIT_TEST_SUITE_END();  
  6.       
  7. public:  
  8.     void setUp() {  
  9.         // 在這裡進行測試的初始化工作  
  10.     }  
  11.       
  12.     void tearDown() {  
  13.         // 在這裡進行測試完畢後的清理工作  
  14.     }  
  15.       
  16.     void testFunc();  // 測試函數,用來測試目標類的某一個細節  
  17. };  
  18.    
  19. #endif // DEMO_TEST_H  
  20.    
  21. 文件DemoTest.cpp:  
  22. #include "DemoTest.h"  
  23. #include "../Demo/DemoTest.h"  // 這裡為要測試的目標類的頭文件路徑,因為測試時要用到Demo類  
  24. #include <cppunit/extensions/HelperMacros.h> 
  25.    
  26. CPPUNIT_TEST_SUITE_REGISTRATION(DemoTest);  
  27.    
  28. void DemoTest::testFunc()  
  29. {  
  30.     // 這裡對Demo類進行測試,可以使用CPPUNIT_ASSERT、CPPUNIT_ASSERT_EQUAL等來斷言  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved