随笔分类 -  C++(DN)

学习DNC++的时候里面的C++部分
摘要:一 MFC的发展VC 1.0->VC 5.0->VC 6.0->VC2008 SP1)->VS2010二 MFC基础1 MFC 微软基础类库 采用类的方式,将Win32 API等进行封装,形成的库. 2 MFC相关的头文件 afx.h (application framework, X) afxwin.h (类似于windows.h) afxext.h (MFC扩展头文件) ...三 MFC应用程序MFC应用程序主要分为以下三类,对比通常的应用程序,变化的地方如下:1 MFC的控制台程序1.1 包含afx系列的头文件1.2 CWinApp theApp - MFC的应用 阅读全文
posted @ 2013-06-24 22:40 唐小喵 阅读(5329) 评论(0) 推荐(0) 编辑
摘要:1、算法 脱离具体的语言 有穷性 --- 在保证执行有限步骤之后确定能够结束 确切性 --- 每条语句具体干什么 输入输出 --- 所有的算法都有输出,打印屏幕,写文件,写DB2、快速排序法 数据个数超过一个,任选其中一个数据作为分界值,把其他数据按大小关系分为2组,分界值在中间 对两组数据实行递归重组View Code //快速排序算法,效率最高的排序算法。第一个参数表示数组首地址,第二个参数表示数组起始位置,第三个参数表示结束位置 void mysort( int * p , int left , int right ){ int l = left ; ... 阅读全文
posted @ 2012-08-04 10:21 唐小喵 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1、在头文件中 #ifndef _ACCOUNT_ //预编译选项,表示如果没有定义这个宏 #define _ACCOUNT_ //创建以_ACCOUNT_命名的宏 并声明类 #endif 2、链表 (1)解决数组必须连续存储的问题 链表是可以不连续的,通过每个节点的指针连接 (2)节点中一部分空间用于存放数据,另一部分是一个指向下一个节点的指针 (3)每个节点都是一个结构 struct node{ int data; //存储数据 node* next; //指向... 阅读全文
posted @ 2012-08-04 10:17 唐小喵 阅读(197) 评论(0) 推荐(0) 编辑
摘要:1、对文件的分类 (1)文本文件:每个字节都是有效的可显示的ASCII码 ,getline() , >> (2)二进制文件:字节是连续的,不能用vi , more查看文件内容,read按字节数读取 , write 100 是整数的100,占4个字节 “100”是字符数组,占3个字节2、异常 (1)人为错误:由于程序员编码不当 客观错误:不能避免的错误 (2)通过返回值判断程序的错误情况,对调用者的要求高,要写if()else()判断,而且对于返回值的含义要非常的清楚 所以C++中提供了异常处理机制3 异常的工作原理: 1) 程序员写的代码在出现意外的地方自动产生一个异常,然后抛出一 阅读全文
posted @ 2012-08-04 10:12 唐小喵 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1、数据 内存中 变量 磁盘上 文件2、把数据从其他的设备搬到内存中 --- 输入 --- 读 把内存中的数据放到其他设备中 --- 输出 --- 写3、流 物质的定向移动,输入输出流中是数据的定向移动 输入流的源头 : 文件 目的地:内存 输出流的源头 : 内存 目的地:文件4、标准输出设备 --- 显示器 标准输入设备 --- 键盘 键盘 --- 内存 --- 显示器 | | 输入操作 输出操作 输入输出流 : 内存与磁盘之间,内存与标准输入输出设备之间的5、cout 源 :变量 目的地 :显示器 cin 键盘 内存中某一变量 6、标准输入流 cin istream的一个对象 标... 阅读全文
posted @ 2012-08-04 10:10 唐小喵 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1、拷贝构造函数和运算符重载 (1)当类的成员变量中出现指针类型的时候,需要动态申请空间,这样就需要解决浅拷贝的问题 在声明对象的同时用另一个对象为其赋值,会调用拷贝构造函数。 系统提供的默认拷贝构造函数,是浅拷贝,我们可以自己写一个拷贝构造函数,把指针指向的变量也拷贝过去 (2)类中的成员变量出现指针类型,当两个对象都创建出来了以后,相互赋值的时候,就需要重载赋值运算符号 手工为指针指向的变量赋值2、其他的运算符号重载 对于对象之间的加减操作,系统是不允许的,但通过自己的运算符重载,按照自己的规则,实现对象之间的运算操作。 Integer operator+(const Integer&am 阅读全文
posted @ 2012-08-04 10:07 唐小喵 阅读(217) 评论(0) 推荐(0) 编辑
摘要:1、 本对象 子类对象 其他函数 private属性 可见 不可见 不可见 protected属性 可见 可见 不可见 public属性 可见 可见 可见 public extends protected extends private extends 父类的private属性 不能访问 不能访问 不能访问 父类的protected属性 变成protected 不变 变成private,子类可以访问,子类的子类不能访问 父类的public属性 不变 变成protected 变成private,子类可以访问,子类的子类不能访问2、 构造函数有很多种,因为没有指定构造函数,就会默认使用无参的构造函 阅读全文
posted @ 2012-08-04 10:03 唐小喵 阅读(212) 评论(0) 推荐(0) 编辑
摘要:1、类和对象 类就是对对象的描述,主要从属性和行为两个方面描述。 对于属性一般作成private , 行为作为public 函数 (1)构造函数,初始化所有的成员变量,系统自动调用,可以重载 (2)析构函数,在对象生命周期结束的时候自动被调用调用,不准重载 构造函数和析构函数都是系统自动调用的,析构函数可以通过对象调用 A a; a.A(); //error 构造函数是不能手工调用的 a.~A(); //right 手工调用析构函数时,会被当作一个普通的成员函数调用,其中的代码会被执行,对象不被销毁 (3)get,set方法 用于访问私有的成员变量的,外界访问变量的唯一通道 (4)类本身的行. 阅读全文
posted @ 2012-08-04 09:58 唐小喵 阅读(212) 评论(0) 推荐(0) 编辑
摘要:1、类型封装 类 --> 对象 描述 : (1)属性 (2)行为 ---属性和行为是属于类的 创建对象。2、构造函数 --- 初始化对象 (1)构造函数名字必须与类名一样 (2)构造函数不能写返回类型 构造函数在创建对象时,系统自动调用 构造函数允许重载,按用户要求,适应多种情况 当类中一个构造函数都没有的时候,系统提供默认无参的构造函数 但如果在类中定义了一个构造函数,系统就不提供默认的了,所以,建议,在写构造函数时,都要写一个无参的构造函数3、对类的安全的定义 变量 -> 私有 -> private 保护变量,防止外界随意修改,只能在类的内部使用(只能被自己的成员函数使用 阅读全文
posted @ 2012-08-04 09:53 唐小喵 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1、排序函数 void order(int* p1, int* p2){ if(*p1 > *p2){ int temp = *p1; *p1 = *p2; *p2 = temp; } } void sort (int *p , int len , int perLen , void (*pOrder)(void* , void*)){ char* pt = (char*)p; for(int i = 0 ; i < len ; i++){ for(in... 阅读全文
posted @ 2012-08-04 09:49 唐小喵 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1、数组是自动分配空间,指针要手工分配空间(int *p = new int;)2、在Unix上,程序出现段错误的时候,系统会生成core 文件,会把出现错误的那一刻的程序镜像保存在此文件中3、结构的成员变量出现数组: struct Account{ long id ; //char name[ 50 ] ; //char password[ 10 ] ; char * pname ; char * ppwd ; double balance ; }; 数组长度100... 阅读全文
posted @ 2012-08-04 09:47 唐小喵 阅读(218) 评论(0) 推荐(0) 编辑
摘要:1、数组指针声明的时候不用初始化,声明以后就指向数组的首地址了,以后不允许改变,所以,数组指针可以认为是一个常量,一旦赋值就不能改变2、char数组 (1)打印char数组的名字即打印数组的内容 (2)对于字符数组,'\0'是结束标志 字符 '\0' = 数组0 可以认为字符'\0'的ASCII码就是0 要保存5个字符,就要把字符数组长度声明为6 (3)strcpy()和memset() 给一个字符串数组赋值 strcpy(),自动为字符串补 '\0' 在使用strcpy之前,要调用memset(str,0,sizeof(str) 阅读全文
posted @ 2012-08-04 09:40 唐小喵 阅读(257) 评论(0) 推荐(0) 编辑
摘要:1、变量的存储 (1)内存是一块空间,把其中的每个字节做了编号,为了以后计算机能通过编号找到数据 (2)编址方式:绝对编址(在整个程序中使用),相对编址(字节相对于逻辑0偏移量,在进程中使用)2、取变量地址 (1)"&" &i 表示取内存中i的地址 地址的编址用十六进制表示 (2)逻辑0在代码区 全局变量在数据区,地址的编址是大于0的 局部变量在栈区,地址的编址是小于0的 3、数组、结构的地址 (1)数组中的数据在内存中是连续存储的。 数组中每个元素的地址相差的值应为数组元素类型的大小。 (2)结构的地址: 结构的空间是连续的。 结构的起始地址与第一个成员变 阅读全文
posted @ 2012-08-04 09:38 唐小喵 阅读(218) 评论(0) 推荐(0) 编辑
摘要:1、程序由函数组成,函数只完成自己特定的功能即可 把函数声明写在头文件里(想使用函数时,可直接导入头文件,调用函数),把函数实现写在".cc"文件中 把多个".cc"文件编译成可执行文件 ->分别编译成".o"文件,再连接到一起2、值传递 函数中的参数传递是值传递,形参只是实参的一份拷贝数据,在函数中改变形参的值,对实参无影响 3、作业分析:显示层(与用户的交互) 操作数据(完成业务逻辑) biz层 数据(id , password , balance )Bank实现代码View Code =================== 阅读全文
posted @ 2012-08-04 09:33 唐小喵 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1、cin 输入流一旦破坏,就不能恢复2、函数:一段相关代码组成的集合,以便完成一个特定的目的。 (1)可以通过名字来使用,曾强了代码的可重用性。 (2)提高可维护性。3、函数定义=声明+函数体: <返回类型> 函数名(<参数表>...){ return ... } 函数返回值:只有在调用函数的同时才能保存返回值 函数定义时,小括号里的参数称为形参,在函数被调用的时候才有意义。 函数调用时,小括号里的被传入的参数称为实参。4、函数在调用之前只有声明就可以,因为在编译阶段,参照声明可以完成语法上的检测。 函数声明 <返回类型> 函数名(<参数表>. 阅读全文
posted @ 2012-08-04 00:26 唐小喵 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1、%ldd 可执行文件的名字; ---可查看连接库2、C++严格区分大小写,变量命名只能使用字母,数字,或下划线,第一个字母必须使用字母或下划线3、float单精度,double双精度 sizeof(int)---返回int在内存中占的大小 size(bool)=1 size(char)=1 size(short)=2 size(int)=4 size(long)=4 size(float)=4 size(double)=8 无符号的数据一旦溢出,将成为0。 有符号的int最大值2147483647,溢出变为最小值,负数4、不同数据间赋值:有兼容性的,占空间小的数据类型,可以给占空间大的数据 阅读全文
posted @ 2012-08-04 00:20 唐小喵 阅读(204) 评论(0) 推荐(0) 编辑
摘要:1、 程序 —— 可执行文件,人发送给计算机的一组指令。 硬件指令是二进制,方便与数字电路和指令集转换。2、 我们学的是符合ANSI规范的标准C++,有可移植性3、 进制:十进制 -> 二进制:除2取余 88 -> 0101 1000 二进制 -> 十进制 : 各个位与权重的乘机,之后的总和 0101 1000 -> 8+16+64 -> 88 十进制 -> 十六进制 :除16取余 88 -> 0x584、 1byte =8 bit 1 kb = 1024 byte 1M = 1024 kb5、 开发周期 源程序 -->? 可执行代码 --> 阅读全文
posted @ 2012-08-04 00:18 唐小喵 阅读(254) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示