上一页 1 ··· 3 4 5 6 7 8 下一页
  2011年12月19日
摘要: 一、const成员函数 1. 编译器认为非const的成员函数会改变对象中的数据成员,因此编译器不允许它被const对象所调用。 2. const在函数定义中被认为是函数标识符的一部分,编译器和链接器都会检查const。因此若要定义一个const成员函数,需要在声明和定义中同时出现const声明。 按位(bitwise)const和按成员(memberwise)const 按位const的意思是,对象中的每个字节都是固定不变的。按成员const意思是,虽然整个对象从概念上讲是不变的,但是可以改变某个成员。当声明一个const对象时,它默认是按位const的,有两种有内部const成... 阅读全文
posted @ 2011-12-19 21:01 sanlo 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 一、C++中的对象 在C++中,对象是一种变量,每一个对象都必须有唯一的地址。 对于下面的定义: 1structs{}; 这在C语言中是不合法的,C语言中的结构体必须至少包含一个成员;而在C++中它是合法的定义,虽然它没有成员,但是它的大小不为0,因为前面说过在C++中每个对象都有唯一的地址。在vs2008中,它的大小为1 Byte。 二、访问控制 在C++中使用访问说明符(access specifier)来控制对类的访问。 所有的访问保护是由编译器来检查的,在运行期不做检查。程序运行期间,不存在访问说明符的信息,这时对象只是一个存储区域。 C++中的访问控制只是为编程人... 阅读全文
posted @ 2011-12-19 18:14 sanlo 阅读(316) 评论(0) 推荐(0) 编辑
  2011年12月10日
摘要: 一、普通的函数指针 一旦函数被编译并载入计算机中执行,它就会占用一块内存,这块内存有一个地址,因此函数也有地址。 1. 定义一个函数指针 示例代码如下: void (*funcPtr)(); 这个例子将funcPtr定义为一个指向函数的指针,这个函数没有参数,返回值为空。 注:*funcPtr 两侧的括号是必须的,如果去掉括号, void *funcPtr(); // 这表示funcPtr是一个函数,它返回类型为 void* 由于直接定义一个函数指针显得冗长,我们可以使用typedef对其进行简化,如下: typedef void (*FuncPtrType)();... 阅读全文
posted @ 2011-12-10 03:48 sanlo 阅读(7258) 评论(2) 推荐(5) 编辑
  2011年12月3日
摘要: 一、函数的声明和定义 1. 函数重载 在C语言中函数不能被重载。 2. 函数使用前的函数声明 在C语言中: 如果函数在使用之前没有进行声明,那么编译器会对其进行隐式声明: 假设这个函数的返回类型为int类型,但不对其参数做任何假设。 在C++中: 一个函数在使用之前必须进行声明。 3. 在函数声明中没有参数列表 在C语言中: 如果一个函数声明没有参数列表,如下:int func(); 那么编译器不会对func的参数做任何假设,并且不会检查func的参数是否合法。这时, func可以定义为:int func(int i){} 上述func函数的定义不会出错,因... 阅读全文
posted @ 2011-12-03 23:20 sanlo 阅读(1020) 评论(0) 推荐(0) 编辑
  2011年12月2日
摘要: 链接 当C或C++要对函数和变量进行外部引用时,根据引用情况,连接器会选择两种处理方法中的一种。如果还未遇到过这个函数或变量的定义,连接器会把它的标识符加到“未解析引用”列表中。如果链接器遇到过函数或变量定义,那么这就是已解决的引用。 如果链接器在目标模块列表中不能找到函数或变量的定义,它将去查找库。库有多种索引方式,连接器不必到库里查找所有目标模块,而只需浏览索引。当链接器在库中找到定义后,就将整个目标模块而不仅仅是函数定义链接到可执行程序。注意,仅仅是库中包含所需定义的目标模块加入链接,而不是整个库参加链接。如果想尽量减小程序的大小,当构造自己的库时,可以考虑一个源文件只放一个函数。 .. 阅读全文
posted @ 2011-12-02 22:52 sanlo 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 关于抽象 抽象与具体相对,它是一个泛化的过程。用百度百科中的描述就是:从众多事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。 汇编语言是底层机器的抽象,对于不同的CPU来说,它的加法指令码可能各不相同,但是可以使用一个相同的汇编指令,ADD。 C语言是对汇编语言的抽象,也可以说是对汇编的封装,比如说C语言提供了语言级别的流程控制语句,循环语句,条件语句等,而这些在汇编中是需要使用跳转指令实现的。 对于上述的汇编、C语言,它们都是对机器的建模,程序员要解决某个特定的问题,就必须与所建立起的机器模型进行联系,使之相对应。某些程序设计语言针对某类特定的问题进行建模,如Lisp... 阅读全文
posted @ 2011-12-02 21:23 sanlo 阅读(233) 评论(0) 推荐(0) 编辑
  2011年11月19日
摘要: C++ ox的其他资源:C++ 11 FAQ:http://www2.research.att.com/~bs/C++0xFAQ.htmlWIKI :http://en.wikipedia.org/wiki/C%2B%2B11以下为正文赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequality 阅读全文
posted @ 2011-11-19 21:03 sanlo 阅读(303) 评论(0) 推荐(0) 编辑
  2011年11月14日
摘要: 原文链接:http://en.wikipedia.org/wiki/X_PixMap 阅读全文
posted @ 2011-11-14 10:40 sanlo 阅读(160) 评论(0) 推荐(0) 编辑
  2011年11月5日
摘要: 一些资源:http://www.cnblogs.com/cathsfz/archive/2009/08/10/1543266.htmlhttp://coolshell.cn/articles/5709.htmlhttp://www.jooq.org/http://code.google.com/p/lambdaj/【转】An Approach to Internal Domain-Specific Languages in Java原文链接:http://www.infoq.com/articles/internal-dsls-javaIntroductionA domain-specific 阅读全文
posted @ 2011-11-05 16:35 sanlo 阅读(426) 评论(0) 推荐(0) 编辑
  2011年10月24日
摘要: 1#coding:utf-823importsys,os45defshowInfo():6print"""7命令格式:mergefile-isrcfile1srcfile2...-odstfile8说明:-i选项用于指定多个文件或一个文件夹,程序会按照指定的顺序所有的文件及文件夹中的文件进行合并.9-o选项用于指定合并后的目标文件."""101112defmergeFiles(files,dstfilename):13bufCount=1024*102414dstfile=open(dstfilename,'wb')1 阅读全文
posted @ 2011-10-24 21:42 sanlo 阅读(1262) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页