C++随机函数 C++随机函数(VC program):#include #include #include using namespace std; #define MAX 100int main(int argc, char* argv[])
C++中的空类,默认产生那些类成员函数 class Empty{public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty();
c++关键字explicit使用指南 explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上
C/C++ 误区一:void main() 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) .C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( )
调用FindFirstVolume编译错误是undeclared identifier,怎么回事? 我就是把MSDN中的例子直接考到vc中编译,结果就出现undeclared identifier的错误,察看该函数就需要包含window.h即可,我也包含了啊,怎么回事呢? 我就是把MSDN中Enumerating Mount Points这个例子直接考过去未作任何改
STL中sort的用法举例 date:2010-07-02对象数组排序这里展示了两种方法,定义比较函数或通过重载比较运算符使得类本身是可以比较的,就像基本类型一样。定义比较函数,既可以通过定义比较运算符(如operator <),也可以直接定义函数(如compare)。重载运算符之后,可以在sort函数中通过less或greater或less_equal等来调整升序还是降序,默认是升序。另外,重载运算符后,函数bool operator < 就不要了,否则用g
AssertValid和Dump函数的应用 原文地址:http://tsitao.blog.163.com/blog/static/29795822006914105840496/#comment=fks_082074086083084067085082084095086095086074081094084 VC的调试中,AssertValid和Dump函数的应用CObject::AssertValid 成员函数提供对对象内部状态的运行时检查。尽管从 CObject 派生类时不需要重写 Assert
VC++(MFC日期函数) MFC提供了两个日期和时间类CTime和CTimeSpan,分别代表相对时间和绝对时间。CTime是基于格林威治平均时间(GMT)的,本地的时间由环境变量TZ决定。CTimeSpan代表了时间间隔。CTime类由下列成员函数:CTime()创建一个CTime对象。GetCurrentTime()由当前时间创建一个CTime对象。GetTime()由CTime对象返回一个time_t变量。Get
VC INI文件读写 VC中用函数读写ini文件的方法 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。一、向ini文件中写入信息的函数1. 把信息写入系统的wi
wsprintf 在C语言中格式化字符串可以使用printf,但是在WINDOWS编程设计中却行不通了,但是却有变通的方法,那就是用 wsprintf这个函数 它的格式如下:wsprintf(缓冲区,格式,要格式化的值); 第一个参数是字符缓冲区,后面是格式字符串,wsprintf不是将格式化结果写到标准输出,而是将其写入缓冲区中,该函数返回该字符串的长度。 比如我们想通过MessageBox来输出一个整形变量的值,可以用以下代码实现:
善用GetLastError函数 在编程过程中,当程序出现错误,却又不知道错误的原因时,可以使用GetLastError函数,它可以帮助你快速找到出错的原因和语句。 可以直接使用GetLastError函数得到错误代码,然后查找MSDN找到代码对应的错误原因,也可使用下面函数直接把错误原因显示出来:void ShowErrMsg() { TCHAR szBuf[80]; LPVOID lpMsgBuf;
字符串常量定义时的换行问题 如果我们在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符, 而把下一行的内容也算作是本行的内容。这里反斜杠起到了续行的作用。 构建较长的字符串是续行的常见用途, 还有一个作用是定义跨行的宏。 如果我们不使用反斜杠,当我们试图初始化一个跨多行的字符串是,c语言编译器就会发出警告。如下面的语句所示:char letters[] = {"abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRST
线程同步 CCriticalSection(临界区类) 线程同步 CCriticalSection(临界区类) 当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临界区对象,拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线程放弃临界区时为止,这样就保证了不会在同一时刻出现多个线程访问共享资源。 CCriticalSection类的用法如下: 定义CCriticalSection类的一个全局对象(以使各个线程均
reinterpret_cast reinterpret_cast是C++里的强制类型转换符。 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。 例如:int *n= new int ; double *d=reinterpret_cast (n); 在进行计算以后, d 包含无用值. 这是因为 reinterpret_cast 仅仅是复制 n 的比特位到 d, 没有进行必要的分析。 因此, 需要谨慎使用 reinterpret_cast. == =================
关于C++ const 的全面总结 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码1可以定义const常量
C++赋值的两种形式 C++赋值的两种形式 C++支持两种初始化变量的形式:复制初始化(copy-initialization)和直接初始化(direct-initialization)。 复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中。 int ival(1024); //direct-initialization int ival = 1024; //copy-initialization, //此时如果
assert() 函数用法 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。 请看下面的程序清单badptr.c: #inclu
RGB宏详解 #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))这是个带三个参数的宏首先将r,g,b强制转换成BYTE型,之后g左移8位,b左移16位,并把结果分别强制转换成DWORD型,最后将r,左移8位后的g,还有左移16位后的b三者做按位或,所得的结果强制转换成COLORREF类型 分解后的表达式:((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g)))|(((DWORD)(BYTE)(b))))//-------
HDC,CDC,CWindowDC,CClientDC,CPaintDC基础 首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样
|与||的区别 从网上介绍资料来看,|与||至少有两点区别:1、运算类型不一样, |是算术运算,它最终会返回个数,int 、long、、、。而||是逻辑运算符,它只返回两个结果TRUE或FALSE。2、运算规则不一样。|是算术运算符,它会计算表达式的每一个部分。||是短路表达式。只要有一个表达式为真那么就不再计算其下一个表达式。如:(a==b)|(B==C)会将|的前半部分和后半部通计算好了以后,再进行位或运算,最近返回计算结果。而(a==b)||(B==C)只要(a==b)为真,就立即返回。&和&&也是同理,只不过返回