
笔记
文章平均质量分 69
zgbsoap
这个作者很懒,什么都没留下…
展开
-
windows消息机制-基础(sunxin vc++ 笔记1)
#include #include int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTAnce hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line原创 2005-10-31 21:50:00 · 1209 阅读 · 0 评论 -
new/delete
new=分配内存(malloc)+初始化(调用构造函数)delete=调用析构函数+释放内存(free)原创 2006-01-01 22:31:00 · 1725 阅读 · 2 评论 -
指针操作超越变量作用范围的问题(高质量c++)
http://community.youkuaiyun.com/Expert/topic/4494/4494006.xml?temp=.9375269下面这是高质量c++上的:指针操作超越了变量的作用范围。这种情况让人防不胜防,示例程序如下:class A{public:void Func(void){ cout };void Test(void){A *p;{A a;p = &a; // 注意 a 的生命期原创 2006-01-01 22:04:00 · 3593 阅读 · 1 评论 -
高质量c++(有了malloc/free 为什么还要new/delete )
有了malloc/free 为什么还要new/delete ?malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象在消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不原创 2006-01-01 14:49:00 · 12056 阅读 · 0 评论 -
高质量c++(指针参数是如何传递内存的?)
指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num){p = (char *)malloc(sizeof(char) * num);}void Test(void原创 2006-01-01 13:48:00 · 4273 阅读 · 0 评论 -
高质量c++(常见的内存错误及其对策)
常见的内存错误及其对策发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。常见的内存错误及其对策如下:原创 2005-12-31 21:47:00 · 1803 阅读 · 0 评论 -
高质量c++(重载、覆盖、隐藏)
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相原创 2005-12-30 13:19:00 · 20041 阅读 · 7 评论 -
高质量c++(如何在派生类中实现类的基本函数)
如何在派生类中实现类的基本函数基类的构造函数、析构函数、赋值函数都不能被派生类继承。如果类之间存在继承关系,在编写上述基本函数时应注意以下事项:原创 2005-12-30 12:08:00 · 2951 阅读 · 0 评论 -
高质量c++(内存分配方式)
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用mal原创 2005-12-31 21:46:00 · 3414 阅读 · 0 评论 -
高质量c++(const成员函数)
const 成员函数任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。class Stack{p原创 2005-12-30 16:33:00 · 14336 阅读 · 5 评论 -
一些面试准备题(包括高质量c++题)
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a co原创 2005-11-15 12:25:00 · 2657 阅读 · 0 评论 -
数据结构笔记--排序
排序;1、插入排序(直接插入排序和希尔排序)2、选择排序(直接选择排序和堆排序)3、交换排序(冒泡排序和快速排序)4、归并排序5、基数排序---------------------直接插入排序说明:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整个序列的排序。原创 2005-11-14 16:35:00 · 5770 阅读 · 1 评论 -
数据结构笔记--查找
查找:1、顺序查找2、二分查找3、分块查找4、数表的动态查找(二叉排序树查找、平衡二叉树AVL树、B树、B+树)5、哈希查找---------------------------顺序查找说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表。int SequelSearch(elemtype s[],keytype Key,int n)/*在s[0]-s[n-1]中顺序查找关键字为Key的记录*原创 2005-11-14 18:25:00 · 3699 阅读 · 0 评论 -
引用(c++)
1void swap(int &rx,int &ry){ int temp; temp=rx; rx=ry; ry=temp; }调用形式:int x=5;int y=6;swap(x,y);2void swap(char *&x,char *&y){ char *temop temp=x; x=y; y=temp;}调用形式:char *ap="hello";char *bp=原创 2005-10-29 21:24:00 · 802 阅读 · 0 评论 -
c++复习笔记--c++语言程序设计题典
第一章 类和对象一、知识点:1 类和对象的概念1.1 类的定义1.2 对象的定义1.3 成员的访问权限2 构造函数和析构函数2.1 构造函数的定义2.2 重载构造函数2.3 构造函数的调用方式2.4 析构函数的定义2.5 析构函数的调用方式3 对象指针和对象数组3.1 对象指针的定义和使用3.2 对象数组的定义和使用4 成员指针4.1 数据成员指针的定义和使用4.2 成员函数指针的定义和使用5 静原创 2005-10-29 20:39:00 · 2055 阅读 · 0 评论 -
windows多线程-关键代码段(临界区)(sunxin vc++ 笔记4)
例1 使用关键代码段(临界区)实现线程同步#include #include DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data);DWORD WINAPI Fun2Proc( LPVOID lpParameter // thread data);int tickets=100;CRITICAL_SECTION g_cs;v原创 2005-11-01 22:12:00 · 4795 阅读 · 0 评论 -
windows多线程(sunxin vc++ 笔记2)
多线程例1 多线程的创建#include #include DWORD WINAPI Fun1Proc( LPVOID lpParameter //thread data);int index=0;void main(){ HANDLE hthread1; hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL); CloseHandle(hT原创 2005-11-01 16:43:00 · 2158 阅读 · 0 评论 -
windows多线程同步--事件对象(sunxin vc++ 笔记3)
#include #include DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data);DWORD WINAPI Fun2Proc( LPVOID lpParameter // thread data);int tickets=100;HANDLE g_hEvent;void main(){ HANDLE hThread1原创 2005-11-01 21:17:00 · 4202 阅读 · 0 评论 -
高质量c++(extern c)
如果C++程序要调用已经被编译后的C 函数,该怎么办?假设某个C 函数的声明如下:void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。例如:ex原创 2005-12-30 13:16:00 · 4487 阅读 · 1 评论