快捷搜索:  
单元测试工具C++Test简介

单元测试工具C++Test简介

C++ Test是Parasoft公司出品的一个针对C/C++源代码进行自动化单元测试的工具。它可以对源代码进行三种测试:白盒测试、黑盒测试以及回归功测试。 白盒测试 C++ Test对C/C++源代码进行分析,针对所有的类的成员函数(包括:公共的、保护的以及私有类型的)进行测试。测试的方法是判断当输入一个非法的参数时,有关函数能否正确处理。(Record命令)在此状态下软件针对指定的文件、类或者是函数自动生成测试用例。 黑盒测试 不对源代码进行分析,并且只针对类的公共接口函数进行测试。(Play命令)...

C++程序员必需的修养

C++程序员必需的修养

我总结了在用C/C++语言(主要是C语言)进行程序写作上的三十二个“修养”,通过这些,你可以写出质量高的程序,同时也会让看你程序的人渍渍称道,那些看过你程序的人一定会说:“这个人的编程修养不错”。 01、版权和版本 02、缩进、空格、换行、空行、对齐 03、程序注释 04、函数的[in][out]参数 05、对系统调用的返回进行判断 06、if 语句对出错的处理 07、头文件中的#ifndef 08、在堆上分配内存 09、变量的初始化 10、h和c文件的使用 11、出错信息的处理 12、常用函数和循环语...

C++基础之理解new-handler的行为

C++基础之理解new-handler的行为

当 operator new 不能满足一个内存分配请求时,它抛出一个 exception(异常)。很久以前,他返回一个 null pointer(空指针),而一些比较老的编译器还在这样做。你依然能达到以前的目的(在一定程度上),但是我要到本文的最后再讨论它。 在 operator new 因回应一个无法满足的内存请求而抛出一个 exception 之前,它先调用一个可以由客户指定的被称为 new-handler 的 error-handling function(错误处理函数)。(这并不完全确切,ope...

Matlab与C语言程序的应用编程接口

Matlab与C语言程序的应用编程接口

MATLAB作为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。而C语言功能丰富,使用灵活方便,目标程序效率高。既有高级语言的优点,又有低级语言的特点。因此,C语言是目前应用最广的编程语言。虽然MATLAB是一个完整的、功能齐全的编程环境,但在某些情况下,与外部环境的数据和程序的交互是非常必须而且有益的。 众所周知,MATLAB是用M语言编程,不能在M文件中直接调用C语言程序。可以通过MA...

谈C++继承中的重载、覆盖和隐藏

谈C++继承中的重载、覆盖和隐藏

写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(overload)和覆盖(override)搞错! 我们先来看一些代码及其编译结果。 实例一: #include "stdafx.h" #include class CB { public: void f(int) { cout "CB::f(int)" endl; } };...

体验C++中接口与实现分离的技术

体验C++中接口与实现分离的技术

在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下: lxTest.h文件内容: class ClxTest { public: ClxTest(); virtual ~ClxTest(); void DoSome...

初学者,你应当如何学习C++以及编程

初学者,你应当如何学习C++以及编程

JavaScript是世界上最受误解的语言,其实C++何尝不是。坊间流传的错误的C++学习方法一抓就是一大把。我自己在学习C++的过程中也走了许多弯路,浪费了不少时间。 为什么会存在这么多错误认识?原因主要有三个,一是C++语言的细节太多。二是一些著名的C++书籍总在(不管有意还是无意)暗示语言细节的重要性和有趣。三是现代C++库的开发哲学必须用到一些犄角旮旯的语言细节(但注意,是库设计,不是日常编程)。这些共同塑造了C++社群的整体心态和哲学。 单是第一条还未必能够成气候,其它语言的细节也不少(尽管比...

c++中虚拟函数就实现多态性

c++中虚拟函数就实现多态性

面向对象程序设计的基本观点是用程式来仿真大千世界,这使得它的各种根本特性非常人性化,如封装、继承、多态等等,而虚拟函数就是c++中实现多态性的主将。为了实现多态性,c++编译器也革命性地提供了动态联编(或叫晚捆绑)这一特征。 虚拟函数亦是mfc编程的关键所在,mfc编程主要有两种方法:一是响应各种消息,进行对应的消息处理。二就是重载并改写虚拟函数,来实现自己的某些要求或改变系统的某些默认处理。 虚函数的地位是如此的重要,对它进行穷根究底,力求能知其然并知其所以然 对我们编程能力的提高大有好处。下面且听我道...

C++类对象的深拷贝、浅拷贝构造函数

C++类对象的深拷贝、浅拷贝构造函数

在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int b =a; 自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如: #include iostream usingnamespacestd; classTest { public: Test(inttemp) { p1=temp; } protected: intp1; }; voidmain() { Test a(99); Te...

在C++中实现C#的delegate机制

在C++中实现C#的delegate机制

用过C#的朋友都觉得C#的确是个好语言,但有时由于特殊需要,不得不用C++,在C++中要想实现C#中的Thread等也是可行的,不过代码要稍复杂。 以例子来说明: 这个例子比较简单,Sdk用来实现某个功能,client是客户程序,要想在m_sdk做处理的时候能发送通知到client,有几个方法可以实现, 其一是发线程消息,其一是回调,但传统的回调对面向对象的支持并不好,这就是实现delegate的出发点。 下面是一个实现: 有了上面代码,再稍加修改sdk和client代码就能实现事件通知了: 上面的实现...

轻轻松松学习C++  标准模板库STL

轻轻松松学习C++ 标准模板库STL

作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL "什么是STL?",假如你对STL还知之甚少,那么我想,你一定很想知道这个问题的答案,坦率地讲,要指望用短短数言将这个问题阐述清楚,也决非易事。因此,如果你在看完本节之后还是觉得似...

几种vcl构件的用法

几种vcl构件的用法

ListBox ComboBox构件 Label构件 按钮VCL BitBTn构件 SpeedButton构件 单选钮与复选框 ScrollBar构件 File Open File Save对话框 Color对话框 Find和Replace ListBox和ComboBox构件的用途很广的构件。表示标准Windows列表框,用户可以从它的选项清单中选择选项。如果列表框中的项目太多,无法一次显示完,则会出现滚动条,以便访问列表框中的其它项目。新术语 有些列表框是所有者绘制的列表框。在所有者绘制的列表框中,...