上一页 1 ··· 54 55 56 57 58 59 60 61 62 ··· 75 下一页
摘要: 1、如果两种类型存在继承关系,则可以说一个类“继承”了其父类的行为-接口。IO 类型在三个独立的头文件中定义:iostream 定义读写控制窗口的类型,fstream 定义读写已命名文件的类型,而 sstream 所定义的类型则用于读写存储在内存中的 string 对象。2、如果函数有基类类型的引用形参,可以给函数传递其派生类型的对象。3、支持wchar_t类型的类前面加一个w前辍,以此与char类型的版本区分。4、出于某些原因,标准库类型不允许做复制或赋值操作。两层含义:(1)只有支持复制的元素类型可以存储在vector或其它容器类型里;(2)形参或返回类型也不能为流类型,如果需要传递或返回 阅读全文
posted @ 2011-03-18 15:43 浪里飞 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 1、对于字符串,最常见的散列算法之一就是:逐个把字节加到已经构造的部分散列值的一个倍数上。乘法能把新字节在已有的值中散开来。这样,最后结果将是所有输入字节的一种彻底混合。根据经验,在对ASCII串的散列函数中,选择31和37作为乘数是很好的。P45如下所示:enum {MULTIPLIER = 31};unsigned int hash(char *str){ unsigned int h; unsigned char *p; h = 0; for(p = (unsigned int*)str; *p != '\0'; p++) h = MULTIPLIER * h + *p; 阅读全文
posted @ 2011-03-10 16:58 浪里飞 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 1、case 标号必须是整形常量表达式。对于switch结构,只能在它的最后一个case标号或default标号后面定义变量;制定这个规则主要是为了避免代码跳过变量的定义和初始化的情况。可以为某个特殊的case定义变量通过块语句。2、异常类型[2] 标准库异常类定义在四个头文件中:1)exception 头文件定义了最常见的异常类,它的类名是 exception。这个类只通知异常的产生,但不会提供更多的信息。2)stdexcept 头文件定义了几种常见的异常类,这些类型在表1中列出。3)new 头文件定义了 bad_alloc 异常类型,提供因无法分配内存而由 new抛出的异常。4)type_ 阅读全文
posted @ 2011-03-06 10:35 浪里飞 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1、数组的维数必须用大于等于1的常量表达式定义:只能包含整形字面值常量,枚举常量,或用常量表达式初始化的整形const对象。数组下标的类型是size_t,是cstddef中定义的与机器相关的无符号整形。C++不允许长度为0的数组变量,但明确指出,调用new动态创建长度为0的数组是合法的。2、把int型变量赋给指针是非法的,尽管此int型变量的值可能为0。但允许把数值0或在编译时可获得0值的const量赋给指针。void*:可以指向任何非const对象的指针类型;可以进行的操作有:用作函数形参,返回类型,与其它指针进行比较;但是不允许使用void*指针操作它所指向的对象(不能进行解引用操作)。两 阅读全文
posted @ 2011-03-05 12:43 浪里飞 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 1、C++中,每个表达式都会产生一个结果,通常是将操作符作用到其操作数所产生的值。当操作符是输出操作符时,结果是左操作数的值。也就是说,输出操作返回的值是输出流本身。 2、注释对不可嵌套。指/**/ 3、我们使用istream对象作为while的测试条件时,结果是测试流的状态,如果是流是有效的(输入的是有效字符或没有到达文件结尾),则测试成功。 4、因为头文件使用尖括号是找头文件的时候先从系统目... 阅读全文
posted @ 2011-03-04 12:49 浪里飞 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 1、组件是对数据和方法的简单封装。 2、Tip of the day. 3、ActiveX control 的三个接口也有类似性质: ■ property:相当于C++ 类别的成员变量 ■ method:相当于C++ 类别的成员函数 ■ event:相当于Windows 控制组件发出的notification 消息 1)一般而言properties 可分为四种类型: ■ Ambient prop... 阅读全文
posted @ 2011-03-01 21:39 浪里飞 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 什么是Wizard?简言之,就是一个动态链接函数库。可以自己设计一些向导,如有名的DDK Project。 [1,P571]有更多介绍。 参考 [1] 深入浅出MFC 阅读全文
posted @ 2011-03-01 16:32 浪里飞 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念1、模块:一段可执行的程序(包括EXE和DLL),其程序代码、数据、资源被加载到内存中,由系统建置一个数据结构来管理它,就是一个模块。这里所说的数据结构,名为Module Database(MDB),其实就是PE格式中的PE表头,可以从WINNT.H 档中找到一个IMAGE_NT_HEADER 结构,就是它。2、进程:就是一大堆拥有权(ownership)的集合。进程拥有地址空间(由memory context决定)、动态配置而来的内存、文件、执行线程、一系列的模块。操作系统使用一个所谓的Process Database(PDB)数据结构,来记录(管理)它所拥有的一切。3、线程:系 阅读全文
posted @ 2011-03-01 16:04 浪里飞 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 1、主要还是窗口的拆分。[1,P543] 2、ASCII->HEx n = forIt[i] & 0x00FF; 3、要具有打印预览功能(View),需要改写三个函数: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virt... 阅读全文
posted @ 2011-03-01 10:35 浪里飞 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 1、同一份Document的多个views,在Document的一个view改变了后,如何同步其它view呢? 让所有的Views 同步更新资料的关键在于两个函数: 1)CDocument::UpdateAllViews:这个函数会巡访所有隶属同一份Document的各个Views,找到一个就通知一个,而所谓「通知」就是调用其OnUpdate 函数。2)CView::OnUpdate:我们可以在这个函数中设计绘图动作。或许是全部重绘,或许想办法只绘必要的一小部份。通常你不应该在OnUpdate 中执行绘图动作,所有的绘图动作最好都应该集中在OnDraw;你在OnUpdate函数中的行为应该是计 阅读全文
posted @ 2011-02-28 22:09 浪里飞 阅读(1702) 评论(0) 推荐(0) 编辑
上一页 1 ··· 54 55 56 57 58 59 60 61 62 ··· 75 下一页