上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 90 下一页
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 有过C语言编程的朋友大多知道,如果在malloc内存之后不及时free掉内存,那么很有可能会造成内存泄露的。那么在C++上面,是不是也存在这样 的问题呢?结果是C++上面同样也存在内存泄露的危险。这个危险就是如果new后面不能delete的话,也会造成内存的泄露。还有不清楚的朋友可以看看 下面的示例:[cpp] view plaincopyclasstest{intdata;public:test(intvalue):data(value){}~test(){};};voidprocess( 阅读全文
posted @ 2012-01-18 11:14 董雨 阅读(220) 评论(0) 推荐(1) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 缺省函数是C++的一个基本特色。缺省函数定义比较简单,也就是说,对于函数的某一个输入参数或者几个输入参数,如果你没有特定的数值的话,那我们就会 用缺省的数据进行代替。如果你在调用的过程中使用了自己的数据,那么缺省数据将被我们自己定义的数据覆盖。下面就是一个缺省函数的示例:[cpp] view plaincopyintadd(intm,intn=10){returnm+n;} 如果调用呢,有什么区别?[cpp] view plaincopy262:intp=add(2);00401488pu. 阅读全文
posted @ 2012-01-18 11:13 董雨 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 递归,相信有过基本C语言经验的朋友都明白,就是函数自己调用自己。所以,本质上说,它和普通的函数调用没有什么区别。今天之所以会把模板类和递归联系在一起,是因为我们可以用递归的方法实现模板的递归。闲话不多说,我们先从一个统计函数开始说起。[cpp] view plaincopyintprocess(intm){intindex=0;intcount=0;assert(m>=0);for(;index<=m;index++){count+=index;}returncount;} 上面 阅读全文
posted @ 2012-01-18 11:13 董雨 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 如果类是一种确定的数据类型,那么模板就是一种对类的抽象。假设有这么一种类,它需要进行数据的计算,而且类型还很多,那么我们可能就要针对不同类型的数据定义不同的类。我们可以用下面一段代码说明问题:[cpp] view plaincopyclassint_process{inta;intb;public:int_process(intm,intn):a(m),b(n){}~int_process(){}intadd(){returna+b;}intsub(){returna-b;}intmul() 阅读全文
posted @ 2012-01-18 11:12 董雨 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 如果说模板类定义的是一种数据类型,那么模板函数定义的就是一种函数。既然是函数,那么就有输入数据和输出数据。和模板类的概念差不多,模板函数的初衷也是为了在函数操作上抽取共同的特性,屏蔽的是类型的不同和差异。我们可以通过下面一个简单的代码说明问题:[cpp] view plaincopyintint_compare(inta,intb){returna>b?a:b;}doubledouble_compare(doublea,doubleb){returna>b?a:b;} 上面的一段 阅读全文
posted @ 2012-01-18 11:12 董雨 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 算术符重载是类的有一个特性,但是每个人使用的方法不一样。用的好,则事半功倍;但是如果不正确的使用,则会后患无穷。 (1) 简单算术符介绍 那什么是算术符重载呢?我们可以举个例子。一般来说,我们定义两个int类型的变量的话,我们就可应对这两个类型进行加、减、乘、除的操作,同时还能比 较判断、打印、数组操作、*号操作等等。那么如果我们想自己定义的类也具有这样的属性,那我们应该怎么办呢?当然就要算术符重载了。首先,我们对基本 class做一个定义:[cpp] view plaincopyclass 阅读全文
posted @ 2012-01-18 11:11 董雨 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 const是C/C++语言中的关键字,但是如果用的好,可以极大地提高代码的健壮性。一般来说const使用的地方还是蛮多的,但是主要还是下面几个 地方:(1)普通变量的保护;(2)地址空间的保护;(3)类初始变量的声明和保护;(4)类变量在函数中的保护。const的保护主要来自于编译器层 面,和程序的运行没有关系。 (1)普通变量的保护[cpp] view plaincopyconstintdata=10;constcharstr='a';constdoublepi=3.14; 阅读全文
posted @ 2012-01-18 11:11 董雨 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 看过设计模式的朋友都知道,我们在设计单件模式的时候离不开类的静态函数。和类的成员变量不同,类的静态变量属于全部类对象数据;同样和类的成员函数不 同,类的静态函数属于全部类函数共有。这句话读来想来有一些拗口,不过没有关系,我们可以通过一段代码来说明问题。 (1)静态变量 老规矩,我们首先对类进行初步定义,如下所示:[cpp] view plaincopyclassemployee{public:employee(){}~employee(){}staticintvalue;}; 那么,这里出现 阅读全文
posted @ 2012-01-18 11:10 董雨 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 虚函数是面向对象设计中的一个重要内容。它的出现使得我们只需要相同的接口函数,并可以得到不同的生成结果。但是有些朋友却知其然,不知其所以然,为什 么会出现这样的结果,我们可以用一段代码说明问题。首先,我们先定义两个基本类型,一个是employee,一个是manager,看过前面一片博客的朋 友应该都有点印象:[cpp] view plaincopyclassemployee{public:employee(){}~employee(){}virtualvoidprint()const{pri. 阅读全文
posted @ 2012-01-17 10:00 董雨 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 继承是类的一个基本属性,可是在类的继承过程中,函数是怎么初始化?怎么析构的呢?我们不妨看看下面这样的一段代码?[cpp] view plaincopyclassemployee{public:employee(){printf("employee()!\n");}~employee(){printf("~employee()!\n");}};classmanager:publicemployee{public:manager(){printf(&quo 阅读全文
posted @ 2012-01-17 09:59 董雨 阅读(201) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 90 下一页