08 2012 档案
摘要:#if 后面只有两种值不是真(非0)就是假#ifdef自己根据实际情况选择是否定义和执行
阅读全文
摘要:STL和数据结构有什么关系呢?STL是以数据结构为模型,将数据结构变成一种数据类型(类),而且标准化,采用泛型编程的思想将类型(类)里面的元素(成员变量)泛型化。数据结构里的树的学习过程,可以结合线性表,树的叶子结点其实可以当做是线性表里的最后一个元素。只是最后一个元素大于等于一个。数据结构要充分考虑逻辑关系。
阅读全文
摘要:#include <stdio.h>int mystr_len(char *Desstr){if(Desstr == NULL) return 0;if(*Desstr == '\0'){ return 0;}else return (1+(mystr_len(++Desstr)));注意是先++}int main(){char *str = "hello";printf("%d",mystr_len(str));return 0;}
阅读全文
摘要:运算符和函数的区别,运算符是可以直接在cpu中执行的(顾名思义用于运算的的符号),而函数则需要一层一层往下调用执行,new和malloc区别,我们在声明全局对象时,内存是由编译器分配的,而编译器是无法控制函数的执行的,new就像+ - * /一样用于内存分配,sizeof也是运算符是计算出所需要的内存,new运算符符内部会调用sizeof.
阅读全文
摘要:其实是系统调用CRT,然后CRT调用的WinMain.一个C++应用程序的启动过程:a.shell调用CreateProcess激活App.exeb.系统产生一个进程内核对象,使用计数值加1c.系统为此进程产生4GB的地址空间d.加载器将必要的码加载到上述地址空间中,包括App.exe的程序,资料以及所需要的dll。它们被记录在可执行文件PE格式的.idata section中。e.系统为此进程建立一个执行线程,即主线程。执行线程才是CPU时间的分配对象。f.系统调用C Runtime函数库的StartUp codeg.startup code调用APP程序的WinMain函数h.APP程序开
阅读全文
摘要:写在定义后面的变量,给这个变量赋值也就是初始化,因为变量只会定义一次,也就是这句只被执行一次,其他任何时候都不在执行。
阅读全文
摘要:#ifndef NULL#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif#endif上面是从头文件 <stdio.h>中找出来的,在C++中NULL就是0值数据类型为整型,而在C中被强制转换成了指针,值也是零。字符串结尾的字符'\0'值同样是0,类型整型,也就是NULL是常量。
阅读全文
摘要:不管在c还是c++中 都不存在void main() 对于 c来说 如果这样写main()则默认加上int,而c++规定只有int main()和int main(int argc,char *argv[])两种格式,所以void main()的写法是错误的。
阅读全文
摘要:1. 动态链接库概述 (静态库和动态库、动态链接库的加载)概述: Windows API中的所有函数都包含在DLL中.其中有三个最重要的DLL:Kernel32.dll,它包含用于管理内存、进程和线程的各个函数; Uer32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数; GDI32.dll,它包含用于画图和显示文本的各个函数.2.静态库和动态库 静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB).在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE 文件),发布
阅读全文
摘要:C语言是不支持函数重载的,c++通过编译方式的不同支持函数重载 如果按照extern "c"的方式编译则也不支持函数重载。
阅读全文
摘要:http://www.cnblogs.com/good90/archive/2012/03/04/2379371.html
阅读全文
摘要:#include <stdio.h>void insertSort(int*A ,int size){ int i ;int minus = -1,plus = -1;for(i = 0;i < size;i++){if(minus ==-1){if(A[i] < 0 && plus >=0)//查找负数而且用plus保证先查找正数再查找负数{minus = i;}if(A[i] >0 && plus <0)//查找正数,第一次查找到的正数,分水岭,以后只查找负数{plus = i;}}if(minus >0 &a
阅读全文
摘要:1。父类构造函数,构造对象2。子类构造函数,构造对象3。子类析构函数,释放对象4。父类析构函数,释放对象
阅读全文
摘要:string转CString CString.format("%s",string.c_str()); char转CString CString.format("%s",char*); char转string strings(char*); string转char* char*p=string.c_str(); CString转string strings(CString.GetBuffer()); 1,string->CString CString.format("%s",string.c_str()); 用c_s...
阅读全文
摘要:标准C中字符串用字符数组表示 char标准c++中使用string对象winapi中使用TCHAR而MFC终使用CStringCString 转成char *也就是LPTSTR可以使用LPSTR(LPCTSTR) 更好的是使用GetBuffer();
阅读全文
摘要:WINDOW API主要是面向过程的,而MFC主要是面向对象的。在调用API函数时候,如果涉及到另外的对象或者说操作另外的对象,只能通过句柄来实现。所以知道对象ID需要转化成句柄。GetDlgItem();在MFC中涉及到另外的对象而没自己的成员变量(成员变量本身是对象),则通过句柄来实现。所以知道对象ID需要转化成对象或者对象指针。GetDlgItem();
阅读全文
摘要:在应用程序类实例化方法中C***App::InitInstance()注释掉下面这段//Ctest3Dlg dlg;//m_pMainWnd = &dlg;//INT_PTR nResponse = dlg.DoModal();//if (nResponse == IDOK)//{//// TODO: 在此放置处理何时用//// “确定”来关闭对话框的代码//}//else if (nResponse == IDCANCEL)//{//// TODO: 在此放置处理何时用//// “取消”来关闭对话框的代码//}
阅读全文
摘要:STARTUPINFOStartupInfo;//创建进程所需的信息结构变量 GetStartupInfo(&StartupInfo); StartupInfo.lpReserved=NULL; StartupInfo.lpDesktop=NULL; StartupInfo.lpTitle=NULL; StartupInfo.dwX=0; StartupInfo.dwY=0; StartupInfo.dwXSize=0; StartupInfo.dwYSize=0; StartupInfo.dwXCountChars=500; StartupInfo.dwYCountChars=500
阅读全文
摘要:数据结构 = 数据元素 + 数据关系;数据类型 = 数据结构 + 数据操作;所以数据类型的范畴是大于数据结构的。数据类型的范畴和类有点相似。其实类也是一种数据类型。int,char基本类型 同样可以抽象成数据结构和数据元素的模型,只是这里的数据元素是规定内存分配大小。只要定义了一个变量或者一个对象,这个变量或者对象就应该是有值的,因为内存单元是实实在在存在的,只要有内存单元就会有值,然后我们可以初始化这个变量或者对象,然后对其进行操作。
阅读全文
摘要:一 MFC程序执行过程剖析1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数。而在MFC程序当中我们不在能找到类似WinMain这样的程序入口,取而代之的是一系列派生类的声明和定义以及一个冲CWinApp类派生而来的类的全局对象。CWinApp类被称之为应用程序对象,在一个MFC程序当中只允许有一个应用程序对象。由于CWinApp的派生对象是全局的,因此这个对象的构造函数会在所有的其他代码运行之前被调用,而由于CWinApp类当中包含了HWND、HINSTAN
阅读全文
摘要:子类与父类的构造函数2008-11-07 18:13:17|分类: c/c++ |标签: |字号大中小订阅先看下面的例子: #include <iostream.h> class animal { public: animal(int height, int weight) { cout<<"animal construct"<<endl; } ~animal() { cout<<"animal destruct"<<endl; } void eat() { cout<<"
阅读全文
摘要:子类在继承父类的成员函数时,有public,protected,private继承方式,如果在父类是private则无论在子类还是外部都无法访问,如果在父类是public,protected则按照小于等于的原则进行继承。
阅读全文
摘要:函数重载通过函数参数,和函数参数类型,以及参数个数判断,1.void output(int a int b)int output (int a, int b)不能构成重载2.void output(int a int b = 5) void output(int)也不能构成函数重载没有构造函数,默认构造函数由编译器生成。
阅读全文
摘要:在C语言中声明结构体变量需要加上struct关键字,而c++中不需要加。
阅读全文
摘要:在从源代码生成可执行文件的过程中:主要有预处理,编译,汇编,链接等过程预处理:主要完成头文件或者宏定义的,复制替换工作。编译:也就是翻译,将ASCII码翻译成二进制代码,既然是翻译肯定有语法检查等等。标识函数名例如fun()被转换成_fun。链接:把标识的函数名转换成静态链接库里的代码或者做一个记号,在运行时的时候调用动态链接库。stdafx.h要放在头文件的最前面
阅读全文
摘要:编译,链接接源代码的时候,我们会用到库文件,一般常用的库文件系统会默认找到目录和文件,自己添加的库文件则需要在vc工具里添加路径,然后通过#pragma comment(lib ,"xxx.lib" )找到库文件,或者说加载库文件。
阅读全文
摘要:如果加了typedef 则代表是一个类型,如果没加则只是代表一个变量而已 void (*p)(int a,int b) 如果前面没有加typedef则p只是指向一个函数的指针变量而已(而且没有初始化或者赋值),如果加了则是指向函数的指针类型。NULL其实就是整型的0前面有讲过面向对象的思想是把一个功能集合在一起,也讲了功能无非是写入读取之类,这里总结一下,面向对象的思想是把注意力集中在数据身上,那些函数功能已经写好了,只需要直接拿来用就可以。面向过程中是参数数据传递,而面向对象中是对象调用(其实和过程调用中的参数传递一样,说明是哪个对象(数据)而已)。
阅读全文
摘要:附常用快捷键:快捷键 功能CTRL + SHIFT + B生成解决方案CTRL + F7 生成编译CTRL + O 打开文件CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口F4 显示属性窗口SHIFT + F4显示项目属性窗口CTRL + SHIFT + E显示资源视图F12 转到定义CTRL + F12转到声明CTRL + ALT + J对象浏览CTRL + ALT + F1帮助目录CTRL + F1 动态帮助F1 帮助SHIFT + F1当前窗口帮助CTRL + ALT + F3帮助-搜索SHIFT + ALT + ENTER全屏显示CTRL + -向
阅读全文

浙公网安备 33010602011771号