摘要: 堆是堆,栈归栈在阅读以下内容之前,请了解一下几点:第一:坚决澄清:堆是堆,栈归栈。第二:曾经的“堆栈”再不允许重谈,简直就是扯淡!第三:下面内容均属于从内存分配角度的阐述,不要与数据结构混淆。【1】程序的内存分配(1)内存分配详解一个由C/C++编译的程序占用的内存分为以下几个部分<1>栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。<2>堆区(heap) — 一般由程序员设计分配及释放,若程序员不释放,程序结束时可能由OS回收。可能涉及的操作符如下:new、malloc、delete、free等等。<3>全局区(静态区)(st 阅读全文
posted @ 2013-01-04 21:31 kaizenly 阅读(543) 评论(0) 推荐(0)
摘要: 【1】设置或者清除某位。 示例代码如下: 【2】指针引用经典笔试题 (1) (2) (3) (4) (5) (6) 以上几个例子是面试时遇到的最频繁的试题,在此特意备份,以便学习。 【3】这道题是最典型的数组越界示例: 无限循环....... 【4】求最大字段和 示例代码如下: 【5】字节对齐 示例 阅读全文
posted @ 2013-01-04 20:26 kaizenly 阅读(1771) 评论(2) 推荐(0)
摘要: 学习临时对象时的相关代码: 例1: 例2: 例3: 例4: 例5: 例6: 例7: 例8: 例9: 例10: 例11: 例12: 例13:综合运用类中函数的示范程序: 备注:前十二种示例完全可以说明传参与返回时,使用值与引用的区别。后一种主要解释一下类中函数的使用情况,在不同的情况下的调用区别。 阅读全文
posted @ 2013-01-04 20:15 kaizenly 阅读(332) 评论(0) 推荐(0)
摘要: 【1】什么是“引用”?声明和使用“引用”要注意哪些问题?(1)引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。(2)声明一个引用的时候,切记要对其进行初始化。(3)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量... 阅读全文
posted @ 2013-01-04 19:13 kaizenly 阅读(564) 评论(0) 推荐(1)
摘要: 【1】友元常识点 (1)理论知识 <1> 友元分为友元类和友元函数,而友元函数又分为普通函数和成员函数。 <2> 友元具有三个性质: [1] 不具有对称性:A是B的友元,不能说明B就是A的友元 [2] 不具有传递性:A是B的友元,B是C的友元,不可以认为A是C的友元 [3] 不具有继承性:继承关系中 阅读全文
posted @ 2013-01-04 14:58 kaizenly 阅读(650) 评论(0) 推荐(0)
摘要: 1.对比于C函数与C++函数,C++函数特色增加了重载,内联,const和virtual四种新机制 2.重载和内联机制既可以用于全局函数也可以用于类的成员函数 3.const和virtual机制仅用于类的成员函数 4.重载的核心在于参数,参数有三个基本点:(1)类型(2)数量(3)顺序。切记与返回值 阅读全文
posted @ 2013-01-04 14:51 kaizenly 阅读(787) 评论(0) 推荐(0)
摘要: 【1】结构体需要注意那些知识点? (1)数组是为了更清晰的记录有限个相同类型的数据信息而诞生的一种表示形式。 结构体是为了更清晰的记录一个具有不同类型属性特性的对象而诞生的一种表示形式。 联合与结构都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成员,而结构的所有成员都 阅读全文
posted @ 2013-01-04 14:32 kaizenly 阅读(1262) 评论(0) 推荐(0)
摘要: 【1】继承及访问权限(1)理论知识 基类与派生类。基类、父类、超类均是指被继承的类;派生类、子类是指继承于基类(父类、超类)的类。 在C++中使用冒号表示继承。如下代码片段:1 class A : public B // 表示派生类A从基类B继承而来。2 {3 }; 派生类包含基类的所有成员,且还包... 阅读全文
posted @ 2013-01-04 11:52 kaizenly 阅读(322) 评论(0) 推荐(0)
摘要: 【1】重载 (1)重载是指在同一个类内被声明的几个具有不同参数列的同名函数。 函数名必须相同,不考虑函数的返回值类型。 (2)示例代码如下: 1 #include <iostream> 2 using namespace std; 3 4 class Sample 5 { 6 public: 7 v 阅读全文
posted @ 2013-01-03 19:27 kaizenly 阅读(866) 评论(0) 推荐(1)
摘要: 诸位周知,计算机是对现实世界的一种模拟,现在从严格意义而言,其实同时更是一种扩充。编程语言是程序员通过编译器与计算机进行沟通的一种工具。C++编程语言是面向对象的设计理念,也就是以对象为核心。那么,为了能达到代码的复用性,在建立对象之前,必须要抽象设计一个对象的雏形,对头,这个雏形就是所谓的类的概念。设计类时,从宏观上分析,每一类事物包括各类事物其之间都是高度对立与统一的。所以,不外乎只有两种需要区别的成员,一个是各自的属性,因为属性是区别彼此独立的根本性因素。另一个是行为,因为行为是联系彼此统一的本质性表现,或者从程序角度而言称为方法,或是函数。封装性就是一种保证对象各自独立的编程哲学观。既 阅读全文
posted @ 2013-01-03 18:50 kaizenly 阅读(798) 评论(0) 推荐(0)
摘要: 【1】关于继承中的指针应该注意哪些? (1)指向基类的指针可以指向派生类对象。 当基类指针指向派生类对象时,这种指针只能访问派生对象从基类继承而来的那些成员, 而不能访问子类特有的元素,除非应用强类型转换。 例如有基类B和从B派生的子类D,则 B *p; D dd; p = &dd;是可以的,指针p 阅读全文
posted @ 2013-01-03 16:37 kaizenly 阅读(327) 评论(0) 推荐(1)
摘要: 多态知识点总结如下: <1> 含有纯虚函数的类称为抽象类 <2> 抽象类不可以实现实例化 <3> 继承抽象类的函数如果没有实现所有的纯虚函数也为抽象类 <4> 纯虚函数的实现格式:virtual void print() = 0; <5> 继承类在实现纯虚函数时,可以略去关键字virtual,但一般 阅读全文
posted @ 2013-01-03 16:06 kaizenly 阅读(380) 评论(0) 推荐(0)
摘要: 【1】函数是什么? 本质:函数是工具 作用:一个函数为了实现一种功能 发展历程:一个函数是为了实现一种客观的需求功能而设计的一种对应工具 通俗一点说,函数其实就是一种工具。程序其实也很简单的,别被哪些老师【专门忽悠学生的人】把你吓着了。 函数是一个功能体。那么,既然是一个功能体,就从现实中的某个例子 阅读全文
posted @ 2013-01-03 11:36 kaizenly 阅读(366) 评论(0) 推荐(0)
摘要: 一道笔试题的思考: 记得,找工作时,遇到了这样的一道笔试题。 记不清是那个公司的笔试题,反正觉得自己当时还真费了一点功夫的,但是也就搞定了一部分,结果还是被另一部分给鄙视啦! 现在静下来分析实现如下: 题目:用C++设计一个不能被继承的类 不能被继承?不能被继承?不能被继承?按照继承的理论知识分析, 阅读全文
posted @ 2013-01-03 10:52 kaizenly 阅读(8424) 评论(4) 推荐(0)
摘要: 【1】为什么空类可以创建对象呢? 示例代码如下: 1 #include <iostream> 2 using namespace std; 3 4 class Empty 5 { 6 }; 7 8 void main() 9 { 10 Empty obj1; 11 cout << sizeof(Em 阅读全文
posted @ 2013-01-01 17:57 kaizenly 阅读(1953) 评论(0) 推荐(0)
摘要: 【1】关于类的知识点有哪些? 理解类从以下几个方面: (1)类(class)实际上是对某种类型的对象定义属性和方法的原型。 它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。 那么抽象怎么理解?比如,“水果”这个词就很抽象,“人民”这个词也很抽象,“动物”这个词同样抽象。咋这么说 阅读全文
posted @ 2013-01-01 17:32 kaizenly 阅读(435) 评论(0) 推荐(0)
摘要: 【1】 "abcdef"一定是常量吗?依情况而定。(1)不是常量的情况。当“abcdef”作为字符数组初始值时就不是常量。示例代码如下:char str[] = "abcdef";//或者char str[] ={"abcdef"};以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abcdef",那么编译器帮你存储的是"abcdef\0"。所以上面语句最终的结果是:char str = {'a', 'b', 'c', 阅读全文
posted @ 2013-01-01 16:58 kaizenly 阅读(452) 评论(0) 推荐(0)
摘要: 【1】strlen 与 sizeof的区别 (1)sizeof操作符的返回结果类型是size_t。size_t在头文件中typedef为 unsigned int类型,该类型保证能容纳实现所建立的最大对象的字节大小。 (2)sizeof是操作符,strlen是函数。 (3)sizeof可用类型或变量 阅读全文
posted @ 2013-01-01 15:50 kaizenly 阅读(543) 评论(0) 推荐(0)
摘要: 【1】为什么引入数组?实际编程中,我们有可能会面临这样子的问题,需要定义很多的变量,而且这些变量的类型都是相同的,例如:int a,b,c,d,e,f......;那么,矛盾总是推动着事物向前发展进步的根本动力。程序设计语言也不例外,同时遵循这个客观的规律。所以,为了更简练,更清晰的模拟描述这一系列... 阅读全文
posted @ 2013-01-01 14:38 kaizenly 阅读(297) 评论(0) 推荐(0)
摘要: 【1】数组名可以当作一个指针如何理解?数组的数组名其实可以看作一个指针。(1)示例代码如下:1 int array[10]={0,1,2,3,4,5,6,7,8,9},value;2 value = array[0]; //也可写成:value=*array;3 value = array[3]; //也可写成:value=*(array+3);4 value = array[4]; //也可写成:value=*(array+4);上例中,一般而言数组名array 代表数组本身,类型是int[10]。但如果把array 看做指针的话,它指向数... 阅读全文
posted @ 2013-01-01 13:36 kaizenly 阅读(508) 评论(0) 推荐(0)
打赏