C/C++技术区
文章平均质量分 62
猫腻儿姐姐
性格:乐天达观、单纯可爱, 精力充沛。
职业期望:做个相当有实力的女软件工程师!
爱好: 睡觉,学习!哈哈
展开
-
C++概念梳理
7:C++概念总结7.1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。7.2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。7.3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显原创 2006-10-19 15:40:00 · 2160 阅读 · 0 评论 -
COM组件设计与应用(三)————数据类型
COM组件设计与应用(三)数据类型作者:杨老师一、前言 上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的知识,将来写起程序来才会得心应手也:-) 走入正题之前,请大家牢牢转载 2007-02-08 15:29:00 · 524 阅读 · 0 评论 -
线程: 同步对象的使用
不管是辅助线程还是用户接口线程,在存取共享资源时,都需要保护共享资源,以免引起冲突,造成错误。处理方法类似于Win32 API函数的使用,但MFC为我们提供了几个同步对象C++类,即CSyncObject、CMutex、CSemaphore、CEvent、CCriticalSection。这里,CSyncObject为其它四个类的基类,后四个类分别对应前面所讲的四个Win32 API同步对象。原创 2007-11-07 11:11:00 · 1076 阅读 · 0 评论 -
总结:黑盒测试、白盒测试以及灰盒测试
软件测试的方法和技术是多种多样的。 对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试; 1. 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑原创 2007-12-06 15:42:00 · 4865 阅读 · 0 评论 -
C语言 volatile 关键字讲解:
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令转载 2008-01-02 10:52:00 · 671 阅读 · 0 评论 -
VC 常见问题百问
VC 常见问题百问 (1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行转载 2008-03-28 15:02:00 · 776 阅读 · 0 评论 -
类模板和模板类
首先看二者的概念: 类模板:是一个模板。一个类模板是一个含有模板的定义,用来抽象某种算法。编译器不会为类模板生成代码。 类模板强调的是模板 template class A {}; 这个A就是是一个模板 类模板是类的抽象,类是类模板的实例。 模板类:是一个类,在原创 2008-01-07 16:01:00 · 928 阅读 · 0 评论 -
vc中对话框如何屏蔽ESC和ENTER键
在VC6.0中,我们可以对CDialog选中,按F12,然后在该类中找到虚函数 virtual void OnOK();virtual void OnCancel();我们改写他。屏蔽ESC/Enter:方法一: 重载CDialog的OnCancel ,且让这两个函数的实现为空。 加入WM_CLOSE消息处理,实现如下, void CMyDialog::O原创 2008-04-02 11:17:00 · 4490 阅读 · 0 评论 -
vc 进程间通讯
在Windows下各个任务是以不同的进程来完成的,当一个进程启动后,操作系统为其分配了4GB的私有地址空间,由于位于同一个进程中的线程共享同一个地址空间,所以线程间的通信很简单,就像两个人如果在同一个房间里说话的话就比较容易,只要动动嘴皮子就OK了, 但是如果在两个国家里就比较麻烦,必须借助于一些其他的手段,比如打电话等. 以下介绍四种进程通信方式,虽然是在windows下的环境但是在其他的操作系转载 2008-04-08 11:49:00 · 1262 阅读 · 0 评论 -
结构体的sizeof
结构体的sizeof这是初学者问得最多的一个问题,所以这里有必要多费点笔墨。让我们先看一个结构体:struct S1{char c;int i;};问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。请不要沮丧,我们来好好琢磨一下sizeof的原创 2007-02-08 14:23:00 · 830 阅读 · 0 评论 -
COM 组件设计与应用(一)
COM 组件设计与应用(一)起源及复合文件作者:杨老师一、前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:“小杨呀,以后写程序就和搭积木一样啦。你赶快学习一些OLE的技术吧......”,当时我心里就寻思 :“开什么玩笑?搭积木方式写程序?再过100年吧......”,但作为一名听话的好学生,我开始在书店里“踅摸”(注1)有关OLE的书籍(注2)。功夫不负有心人,终于买到了我的第转载 2007-02-08 15:23:00 · 524 阅读 · 0 评论 -
一道经典的字符串反转问题**
递归, 栈原理发挥的淋漓尽致:堪称经典!#includevoid reverse(char *p) { if( *p == /0 ) return; reverse( p+1 ); printf( "%c", *p ); }int main() { reverse("abcdefg"); printf("/n"); return 0;}原创 2006-11-20 16:56:00 · 1162 阅读 · 2 评论 -
关于printf()函数和scanf()函数
1:printf()函数 %c 单个字符 %d 十进制有符号整数 %e 以“科学记数法”的形式输出十进制的浮点数 如2.451e+02 %f 输出十进制浮点数,不带域宽时,保留6位小数 %g 选用e或f格式中较短的一个输出十进制原创 2006-10-19 15:28:00 · 775 阅读 · 0 评论 -
关于内存分配问题
一.在c中分为这几个存储区1.栈 - 有编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的>另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。 - 程序结束释放转载 2006-10-19 11:37:00 · 577 阅读 · 0 评论 -
fread和 fgets的区别:
fread和 fgets的区别:fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止. fgets :整行读取,遇到回车换行或结尾停止.在文本方式时使用. 读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针);其中的n是一个正整数。表示从文件中读出的字符串不原创 2006-10-19 15:54:00 · 28550 阅读 · 1 评论 -
Win32 Application和Win32 Console Application的区别
Win32 Application和Win32 Console Application的区别在HelloWindows工程建好后,有些学员可能会常遇到如下链接错误:--------------------Configuration: hellowindows - Win32 Debug--------------------Linking...LIBCD.lib(crt0.obj) : e原创 2006-10-19 16:12:00 · 1697 阅读 · 0 评论 -
标准c++中主要四种强制转换类型运算符
标准c++中主要四种强制转换类型运算符标准c++中主要有四种强制转换类型运算符:const_cast,reinterpret_cast,static_cast,dynamic_cast等等。1、static_cast 是静态转换,只能用于类型兼容的转换(由宽向窄), 无RUNTIME损耗 可以用来对多态对象的指针进行高效的downcasting,但是当被转换的指针实际上指向错误原创 2006-10-19 15:44:00 · 1409 阅读 · 2 评论 -
自定义消息
消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤: 第一步:定义消息。 推荐用户自定义消息至少是WM_USER+100,因为很原创 2006-10-26 11:06:00 · 759 阅读 · 0 评论 -
关于拷贝构造函数和赋值运算符
以下讨论中将用到的例子: class CExample{public:CExample(){pBuffer=NULL; nSize=0;}~CExample(){delete pBuffer;}void Init(int n){ pBuffer=new char[n]; nSize=n;}private:char *pBuffer; //类的对象中包含指针,指向动态分配的内存资源int nSize转载 2006-11-18 08:56:00 · 499 阅读 · 0 评论 -
虚基类
虚基类:如果基类被声明为虚基类,则重复继承的基类在派生磁对象实例中只好存储一个副本,否则,将出现多个基类成员副本。 虚基类说明格式如下: virtual class B:virtual public A 注意: a.如果一个派生类有直接或间接的虚基类,那么派生类的构造函数的成员初始列表中必须原创 2006-11-18 08:58:00 · 721 阅读 · 0 评论 -
VC++下对匿名管道的编程实现
概述 管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。匿名管道(Anonymous Pipes)是在父进程和子进程间单向传输数据的一种未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。 匿名管道实施细则 匿名管道由CreatePipe()转载 2008-04-11 09:56:00 · 846 阅读 · 0 评论