- 博客(14)
- 收藏
- 关注
原创 基类和派生类
引言:前面我们讲述了面向对象程序设计的第一个重要机制--数据封装。本章将接着讨论面向对象程序设计中的第二个机制--继承性。继承机制提供了无限重复利用程序资源的一种途径。 继承使得我们得以用一种简单的方式来定义新类。如果我们定义了一个哺乳动物类,包括哺乳动物的一些普通属性和方法,然后再定义一个狗类, 有没有必要重头开始定义呢?实际上这是没有必要的,因为狗是哺乳动物的一种特殊动物,定义狗类可以沿用哺
2010-03-25 13:28:00 942
原创 理解 NewL ConstructL NewLC ELeave
初学Symbian开发,第一件感觉迷惑的事情是CleanupStack 第二件肯定是随处可见的NewL,NewLC,ConstructL。这些函数的出现依然和内存泄漏有关,这是一种被称为两步构造的机制,英文叫Two-phase Construction。我知道C++里面的 new 操作符实际上完成2件事,第一根据对象类的大小在堆上分配一块内存并获得指向内存的指针,第二利用指针调用类的构造函数,最后
2010-03-25 11:29:00 403
原创 内存碎片产生原因及处理技术
<a onclick="function onclick(){tagshow(event, %C4%DA%B4%E6);}" href="javascript:;" target="_self">内存<a onclick="function onclick(){tagshow(event, %CB%E9%C6%AC);}" href="javascript:;" t
2010-03-25 11:04:00 1051
原创 Const 与 引用
引用是别名当引用初始化后,只要该引用存在,他就保持绑定到初始化时指向的对象,不可能将引用绑定到另一个对象 const引用const引用是指向const对象的引用 const int ival = 1024;const int &refval = ival; //OK 指向的const对象int &ref2 = ival; //error 不是指向const的引用
2010-03-25 09:25:00 352
原创 union struct 区别
共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 --------------------------------------------------------------- 结构体变量所占内存长度是各成员占的内存长度的总和。 共同体变量所占内存长度是各最长的成员占的内
2010-03-25 09:22:00 446
原创 递归算法
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。 这里有一个
2010-03-24 15:52:00 271
原创 循环链表---猴子选大王
ZT文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作 题目描述:n只猴子要选大王,选举方法如下:所有猴子按 1,2 ……… n 编号并按照顺序围成一圈,从第 k 个猴子起,由1开始报数,报到m时,该猴子就跳出圈外,下一只猴子再次由1开始报数,如此循环,直到圈内剩下一只猴子时,这只猴子就是大王。输入数据:猴子总数n,起始
2010-03-24 15:47:00 1399
原创 时间复杂度,空间复杂度
】时间复杂度和空间复杂度2007-09-16 13:431、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法
2010-03-24 15:39:00 386
原创 C/C++面试题
最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道的0x10个基本问题
2010-03-24 14:51:00 632
原创 C/C++中预编译
#是生成字符串: #define a(x) #x a(bc) => "bc"##是连接: #define a(x) abc##x a(123) => abc123#error是生成编译错误消息: #ifdef abc #error something wrong...
2010-03-24 14:12:00 310
原创 C语言位运算
C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
2010-03-22 11:31:00 269
原创 C语言宏定义详解 - [C,C++]
转自http://hiaurora.blogbus.com/logs/17277468.html我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案.举个例子,如下: #define .... #define .... ........ ......
2010-03-22 11:29:00 629
原创 一个小小的C语言宏定义错误 - [C,C++]
#define AAA 1;#define BBB 2;int addDe() { int re = AAA * BBB; return re;}int main(int argc, char* argv[]){ int a = addDe(); return 0;}竟然会提示C2100错误。百思不解,用加号+代替*就没有错误,原因何在?查了一下MSDN:对C2100错误的解释是,*
2010-03-22 11:28:00 496
原创 C++ Primer 学习笔记
好长时间没有做C++的项目了,东西都要忘光光了,从今天开始,从新整理一下自己的知识,写个笔记啥的鼓励自己把这本书看完。Primer C++ 学习笔记一. 入门1.1程序源文件的命名规范 C++程序文件的后缀与所运行的具体编译器有关。 包括 Prog1.cxx Prog1.cpp Prog1
2010-03-18 15:45:00 364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人