对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提供的插件可以快速定位到断言失败的地方。一般情况下。#t#

我们使用控制台测试界面来测试Console程序,使用图形测试界面来测试GUI程序,这样测试Project不会影响被测试的Project。由于图形测试界面的易用性,我们可能也希望用它来测试Console程序,此时稍微麻烦一点。下面分别介绍这几种用法(以VC6为例,VC8类似)。

在下面的叙述中,把被测试Project叫做目标Project,把被测试类叫做目标类。使用CppUnit的Console测试界面测试Console程序
1. 创建一个工作区用于开发和测试,然后在该工作区中分别创建两个Project,一个用于开发,另一个用于测试。
 
2. 在测试Project中,设置如下:
(1)设置连接库:cppunit.lib(Release版)和cppunitd.lib(Debug版),或者使用动态链接库版本cppunit_dll.lib、cppunit_dll.dll和cppunitd_dll.lib、cppunitd_dll.dll;
(2)在C/C++Code Generation中设置Use run-time library为Multithreaded Dll(Release版)和Debug Multithreaded Dll(Debug版)。
 
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等来断言  
责任编辑:chenqingxiang 来源: 华军资讯
相关推荐

2010-01-15 15:52:18

CC++

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-15 19:34:25

C++设计

2010-01-28 10:01:28

C++的设计原则

2010-01-14 13:39:45

Visual C++优

2010-02-04 17:32:43

C++中C风格字符串

2010-01-19 18:35:12

静态成员

2010-01-28 14:11:43

C++迭代器

2010-02-02 11:16:28

C++异常

2010-02-06 09:53:26

C++ void

2010-02-01 16:13:15

C++继承

2010-01-26 10:27:43

C++语言

2009-08-19 09:57:01

C++ RAII

2011-06-17 16:09:04

freadfwrite

2009-08-25 14:42:41

由C++转向C#

2011-07-20 15:08:22

C++

2010-01-25 18:26:44

CC++头文件

2010-02-24 09:45:10

Linux CC++
点赞
收藏

51CTO技术栈公众号