摘要: //在Onpaint函数中加入如下代码 //----------给窗口设置背景图片---------------------------- CPaintDC dc(this); CRect myrect; GetClientRect(&myrect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP... 阅读全文
posted @ 2014-02-24 17:53 前方辉煌 阅读(7226) 评论(0) 推荐(0) 编辑
摘要: 一、拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆。2.形如class X { X (const X& that) { ... }};的构造函数成为拷贝构造函数。如果一个类没有定义拷贝构造函数,系统会提供一个缺省拷贝构造函数。缺省拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型的成员变量,调用相应类型的拷贝构造函数。3.在某些情况就下,缺省拷贝构造函数只能实现浅拷贝,如果需要获得深拷贝的复制效果,就需要自己定义拷贝构造函数。4.形如class X { X& operator= (const X& that) { . 阅读全文
posted @ 2013-09-15 20:50 前方辉煌 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 一、拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆。2.形如class X { X (const X& that) { ... }};的构造函数成为拷贝构造函数。如果一个类没有定义拷贝构造函数,系统会提供一个缺省拷贝构造函数。缺省拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型的成员变量,调用相应类型的拷贝构造函数。3.在某些情况就下,缺省拷贝构造函数只能实现浅拷贝,如果需要获得深拷贝的复制效果,就需要自己定义拷贝构造函数。4.形如class X { X& operator= (const X& that) { . 阅读全文
posted @ 2013-09-15 20:34 前方辉煌 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 九、3.内联1)编译器用函数的二进制代码替换函数调用语句,减少函数调用的时间开销。这种优化策略成为内联。2)频繁调用的简单函数适合内联,而稀少调用的复杂函数不适合内联。3)递归函数无法内联。4)通过inline关键字,可以建议编译对指定函数进行内联,但是仅仅是建议而已。inline void foo (int x, int y){...}十、C++的动态内存分配malloc/calloc/realloc/free1.new/delete:对单个变量进行内存分配/释放2.new[]/delete[]:对数组进行内存分配/释放十一、引用1.引用即别名。int a = 20;int& b = 阅读全文
posted @ 2013-09-15 20:31 前方辉煌 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一、C++语言语法基础(6)1.从C到C++的过渡(1)2.类和对象(2)剑3.操作符重载(1)4.继承与多态(1)5.异常和I/O流(1)二、数据结构和算法(3)1.基本数据结构,堆栈、队列、链表、二叉树,实现和应用(2)2.排序和查找算法(1)三、模板和STL(3)1.模板语法(1)2.STL(2)四、阶段项目(2)简化的企业管理信息系统(MIS)第一课 从C到C++的过渡一、背景介绍算盘 - 面向硬件的编程电子计算机 - 机器语言的编程1010 - 汇编语言的编程ADD - 高级语言的编程Fortran printf ("%d", 12); - 结构化程序设计C/PA 阅读全文
posted @ 2013-09-15 20:30 前方辉煌 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 数组名称和数组名了地址,得到的结果是一样的,都是一个相同的指针地址。但有一个重要的区别是,当数组名+1运算是得到的是地址加一个元素的大小而取数组地址 +1得到的是整个数组的大小,指针的运算和指针的类型有关。数组名称也可以取地址,得到的地址数据和二维数组名称所代表的地址数据类似。对他们做加一操作时增加的是整个一维数组。这样的地址数据可以赋值给数组指针变量,这么指针声明方法如下int (*p_value)[5];FILE 结构体用来记录文件相关的信息FILE 结构体类型的指针变量叫做文件指针。fopen 函数可以打开一个文件并制作对应的 FILE 结构体变量,把结构体变量的地址作为返回值使用。如果 阅读全文
posted @ 2013-05-25 17:48 前方辉煌 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 通过使用联合可以用不同的方式操作内存中同一段区域。计算机中存储数据的方式有两种,把低位数据存储在低地址字节中的方式叫做小端存储方式,相反就叫大端存储方式,我们的计算机采用的是小端存储方式。使用枚举类型可以把一组名称转换成整数,从数字0开始。堆里的变量的生命周期是由程序员来管理的,可以使唤用C语言提供的函数对堆中的变量进行管理,为了使用这些函数需要包含头文件stdlib.h。malloc函数可以从堆中分配指定个数的连续字节把首字节地址返回。如果失败则返回NULL .free 函数可以把堆中的变量释放掉,需要首字节地址作为参数。calloc 函数也可以从堆中分配变量,并且保证把变量都清0.real 阅读全文
posted @ 2013-05-25 17:41 前方辉煌 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 程序中不同的函数可以写在不同的.c源文件中。不同的源文件之间使用扩展名为.h 的头文件链接起来。编写所有头文件时要使用条件编译进行控制,避免被多次编译。多文件程序编译有两种办法 1.使用GCC命令对所有.c源文件统一编译。 2.使用gcc命令对每个单独的.c源文件进行编译,得到以.o作为扩展名的目标文件。最后使用gcc命令把所有目标文件合并成可执行文件。.c源文件中如果要使用其它源文件中声明的全局变量则需要使用如下方法声明一下。extern int a;make工具可以用来进行项目管理,它可以根据记录在Makefile中的要求完成整个编译过程。//======================= 阅读全文
posted @ 2013-05-25 17:32 前方辉煌 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 指针变量可以作为函数返回值使用,只能把全局变量的地址,静态局部变量的地址或者通过参数得到的地址当作返回值使用,普通局部变量的地址绝对不可以当返回值使用。字符串是由内存中一组连续的字符变量构成的。C语言程序中使用第一个字符地地址表示整个字符串。'\0'是字符串的结尾字符,字的位置决定了一个字符串中有效字符变量的个数。这个字符在ASCII表中对应数字0字面值是程序中表示字符串的一种写法,用双引号表示。字面值表示的字符串不可以被修改。多个相同内容的字面值在程序运行时都是同一个。多个连续的字符串字面值在编译时全被合成一个。字符数组也可以表示字符串,它存储在栈中。它可以被修改,可以使用多 阅读全文
posted @ 2013-05-25 17:23 前方辉煌 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 1 /*============================================== 2 *名称:用指针循环出数组 功能:无 3 *日期:2013-05-12 by:ant 4 *备注: 5 *========================================== */ 6 /*#include<stdio.h> 7 int main() 8 { 9 int i,arr[3]={0,1,2},*p_arr;10 p_arr = arr;11 for (p_arr;p_arr<=(arr + 2)... 阅读全文
posted @ 2013-05-25 17:17 前方辉煌 阅读(289) 评论(0) 推荐(0) 编辑