上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页
摘要: 看下面的两个类的声明代码:class B{public: void mf(); //something to do};class D : public B{public: void mf();}; 如果有下面的调用:D x;//第一种调用B *pB = &x;pB->mf();//调用B::m... 阅读全文
posted @ 2015-04-21 20:54 stemon 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 前面说了委托,接下来就要说一说事件了,同时最后再说一下委托和事件的区别。事件和委托很相似,事件就好像是被简化的针对特殊用途的委托。看下面的图:从这张图中能看到,事件是发布者的一个成员,它不是类型。结合前面说的委托的知识,事件的组件应该是这个样子的:看到发布者必须有触发事件的代码,也就是必须为事件的调... 阅读全文
posted @ 2015-04-16 21:10 stemon 阅读(667) 评论(0) 推荐(0) 编辑
摘要: Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名。上个月28号,他回到母校耶鲁大学,与计算机系的学生座谈。他发表了一个演讲,回顾自己的人生经历,并总结了一些个人的体会。我读完他的演讲稿,很受触... 阅读全文
posted @ 2015-04-16 20:23 stemon 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 微软的那个臭屁的JOEL(就是写《JOEL说软件》的那个牛人)曾说:“每一位软件开发人员必须、绝对要至少具备UNICODE与字符集知识(没有任何例外)”,我也常常困扰于字符集的转换等很多问题,所以这次下决心要把他搞个清楚。有关字符编码的学习,在这篇blog中,就从两个程序开始:class TestD... 阅读全文
posted @ 2015-04-16 18:54 stemon 阅读(1105) 评论(0) 推荐(0) 编辑
摘要: 1. 委托概述这是一个新的概念,但是其本质并不是什么新鲜的事物,委托本质上就是一个类。只不过一般的类是数据的集合,委托保存的是一个或者多个方法。委托是引用类型,因此委托有引用和对象,同时委托对象中包含指向方法的引用,也就是C++中的函数指针的概念。也就是说委托中的数据成员都是一些函数指针,这些函数指... 阅读全文
posted @ 2015-04-16 11:23 stemon 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 前面详细的说了,C函数调用的过程中,栈的变化情况的原理部分,这里在看一下汇编代码的真正的实现。有关前面的那一片博客,主要记住的就是函数调用时栈的变化,4+3+2的步骤:(1)设置栈帧边界(2)开辟本函数的局部区域(3)保存寄存器的内容(4)初始化局部区域(int3)(5)如果有函数调用(a)push... 阅读全文
posted @ 2015-04-14 17:33 stemon 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 这篇blog试图说明这么一个问题,当一个c函数被调用时,一个栈帧(stack frame)是如何被建立,又如何被消除的。这些细节跟操作系统平台及编译器的实现有关,下面的描述是针对运行在Linux的gcc编译器而言的。c语言的标准并没有描述实现的方式。所以,不同的编译器、不同的操作系统都可能有自己的建... 阅读全文
posted @ 2015-04-14 11:21 stemon 阅读(972) 评论(0) 推荐(0) 编辑
摘要: 在说这个问题之前,先说两个需要知道的背景知识:(1)语言的类型的强制转换不会修改原来的数据,会另外的开辟一个临时的或者程序中指定的空间来存储强制转换后的值。(2)C++引用的实现是在符号表中动了手脚,把自己的变量符号对应的内存地址写成了它所引用的那个变量的内存地址了。(3)C++的cout函数的执行... 阅读全文
posted @ 2015-04-13 02:37 stemon 阅读(10263) 评论(0) 推荐(0) 编辑
摘要: 背景知识在开始之前先说一下符号表,这个编译器中的东西。下面看一下百度百科中的描述:符号表是一种用于语言翻译器中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。符号表在编译程序工作的过程中不断收集、记录和使用源程序中一些语法符号的类... 阅读全文
posted @ 2015-04-11 17:32 stemon 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 前面的C++的常量折叠(一)的最后留下了一个问题,那就是在声明i的时候,加上修饰符volatile关键字,发现结果输出的就不一样了,下面来说一下volatile这个关键字。C/C++中的volatile关键字和const对应,用来修饰变量,通常用于建立语言级别的memory barrier。下面这句... 阅读全文
posted @ 2015-04-10 14:38 stemon 阅读(653) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页