摘要:原文链接:http://androidguy.blog.51cto.com/974126/216490大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。 我们也可以将类比喻成做五角星的模具。而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。 还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。我们也可以将接口看成是制做这个五角星模具的规格列表(相当于
阅读全文
随笔分类 - C++/C
摘要:最近在用Qt做一个程序,其中就涉及到了“野指针”的,果然出了问题(为什么要用果然呢? 因为以前看过林锐博士的一篇文章提到过这个问题),多次调试检查后才解决。现记录如下:问题描述:程序的目的大概是一个读文件数据并在QGraphicsScene上画出图形再删掉这些图形。程序每运行一次,虽然调用QGraphicsScene的clear()清除items,但是内存占用增加大概300K左右。问题分析:程序中有一个循环(大概4000次左右,根据文件大小不同而不同),在循环中我new了一个对象,在循环结束时delete了这个对象。 但是并没有把对象指针赋为NULL,导致每循环一遍产生了一个野指针,从而内存不
阅读全文
摘要:关键的一点在于:静态成员函数只和类型有关,而与对象无关!这样就可以看出静态成员函数和非静态成员函数的根本区别就在于:静态成员函数没有this指针,因为它没有对象,而非静态成员函数有一个指向当前对象的指针this。举例:class A{public: void notStaticFunc(int a); static void staticFunc(int a);}void f(A& s){ s.notStaticFunc(100); //编译时按照A::notStaticFunc(&s,100)进行,把s的地址作为第一个参数。s.staticFunc(100); //我想最好写
阅读全文
摘要:如何看懂源代码--(分析源代码方法)我们在写程式时,有不少时间都是在看别人的代码。 例如看小组的代码,看小组整合的守则,若一开始没规划怎么看, 就会“噜看噜苦(台语) ” 不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。 网路上有一篇关于分析看代码的方法,做为程式设计师的您,不妨参考看看, 换个角度来分析。 也能更有效率的解读你想要的程式码片段。 六个章节: ( 1 )读懂程式码,使心法皆为我所用。 ( 2 )摸清架构,便可轻松掌握全貌。 ( 3 )优质工具在手,读懂程式非难事。 ( 4 )望文生义,进而推敲组件的作用。 ( 5 )找到
阅读全文
摘要:第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2. typedef & 结构的问题当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明:
阅读全文