随笔分类 -  C++

摘要:原文: http://www.cppblog.com/Lee7/archive/2008/11/07/66226.htmlWindows SDK笔记(一):Windows程序基本结构一、概述Windows程序具有相对固定的结构,对编写者而言,不需要书写整个过程,大部分过程由系统完成。 程序中只要按一定的格式填写系统留给客户的那一小部分。 所需要完成的有: 窗口类的定义、窗口的建立、消息函数的书写、消息循环。二、消息处理函数Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的。没个窗口都有一个消息处理函数。 在消息处理函数中,对传入的消息进行处理。系统内还有它自己的缺省 阅读全文
posted @ 2013-05-30 11:27 landy聪 阅读(170) 评论(0) 推荐(0)
摘要:类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分: 成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,table里面记录的各个成员函数的地址(当然不同的编译可能略有不同的实现)。所以我们访问成员函数是间接获得地址的。所以这样也就增加了一定的时间开销,这也就是为什么我们提倡把一些简短的,调用频率高的函数声明为.. 阅读全文
posted @ 2013-05-19 14:57 landy聪 阅读(278) 评论(0) 推荐(0)
摘要:在后序遍历二叉树时,只有遍历完左右子树后才能访问节点元素。故在退栈到根节点时必须判断是左子树还是右子树返回 的。若是从左子树返回,还要遍历完右子树,否则,即可访问节点元素。只要将返回到栈顶结点的前一个结点保存到一个变量中,判断它是栈顶结点的左孩子还是右孩子就可以区分。算法描述:typedef struct node{char data;node* lchild;node* rchild;}Node,*pNode;void PostOTraverseNRC(pNode T){pNode p=T;stack<pNode> STACK;do {while(p!=NULL){//先遍历完当 阅读全文
posted @ 2013-04-24 20:41 landy聪 阅读(176) 评论(0) 推荐(0)
摘要:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏这个是由于日志文件引起的,可以将项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。或者将项目\属性\配置属性\链接器\清单文件\生成清单:原来是“是”,改成“否”。如果仍然无效,判断是否已经安装了VS2012,如果已经安装,需要安装VS2010 sp1补丁。 阅读全文
posted @ 2013-04-19 21:42 landy聪 阅读(323) 评论(0) 推荐(0)
摘要:typedef typedef用法小结- -这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:来源一:Using typedef to Curb Miscreant CodeTypedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常 阅读全文
posted @ 2013-04-10 20:18 landy聪 阅读(168) 评论(0) 推荐(0)
摘要:在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由一个单独的程序来完成, 编译的不同阶段实现这些不同的功能. 可以指定相应的命令选项来执行这些功能. 有的C编译器使用分别的程序来完成这些步骤. 可单独调用这些程序来完成. 在gcc中 阅读全文
posted @ 2013-04-02 14:58 landy聪 阅读(347) 评论(0) 推荐(0)
摘要:1 指向类成员的指针1.1 概念与常规指针不同,一个指向类成员的指针并不指向一个具体的位置,它指向的是一个类的特定成员,而不是一个特定对象里的特定成员。通常将指向数据成员的指针看作为一个偏移量。大多数编译器都将指向数据成员的指针实现为一个整数,其中包含被指向的成员的偏移量,另外加上1(加1是为了让值0可以表示一个空的数据成员指针)。这个偏移量告诉你一个特定成员的位置距离对象的起点有多少字节。声明一个类成员指针的语法如下:TYPE classname::* var;eg:class C{ public: int a_;};int c::*pimC;//一个指针,指向C的一个int成员C ac;C 阅读全文
posted @ 2013-03-09 14:50 landy聪 阅读(521) 评论(0) 推荐(0)