ad

《C++程序开发案例课堂》_了解C++的更好途径_6.5.2 #define的作用

admin 63 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第6章,第5节,由刘春茂、李琪编著。

6.5.2 #define的作用

通过上一节的介绍认识了#define 预处理器,那么为什么要引入这个预处理器呢?首先, C++ 允许给一些东西命名为描述性的名字,如数字。

举个例子:

int nYen = nDollars * 122;

像122这样的数字在程序中被称为魔法数字,它在代码中没有任何意义—— 122表示什么 呢?是转换率还是其他什么呢?它是不明确的。在一些复杂的程序里,通常很难判断一个魔 法数字具体代表什么。

《C++程序开发案例课堂》_了解C++的更好途径_6.5.2 #define的作用

下面一小段代码是清晰的:

其次,#define 数字可以使得程序更加容易被修改。假设将转换率从122 变成123,程序

需要进行相应的调整。考虑下面的代码:

为了改变成新的转换率,必须将前面4个语句中的数字改变。但是第5个语句呢?这里 的122是不是和其他的122具有相同意义呢?如果是,它应该被改变。如果不是,则不需要 改变,或者也许在其他地方中断。

现在考虑使用了#define 的代码,如下:

这时改变转换率只要改变一个数字,如下:

现在正确改变了转换率,并且不用担心将每页的行数改变。

6.5.3 const 修饰符

常类型是指使用类型修饰符 const 说明的类型。常类型的变量或对象的值是不能被更 新的。

编译器通常不为普通 const 常量分配存储空间,而是将它们保存在符号表中,这 使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很 高。因此,定义或说明常类型时必须进行初始化。

1.一般常量

一般常量是指简单类型的常量。这种常量在定义时,修饰符 const 可以用在类型说明符 前,也可以用在类型说明符后。如:

int const x=2;

const int x=2;

定义或说明一个常数组可采用如下格式:

<类型说明符> const <数组名>[<大小>]

2. 常对象

常对象是指对象常量,定义格式如下:

<类名>const <对象名>

const <类名><对象名>

定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符 const 可以放在类名后面,也可以放在类名前面。

6.6 函 数 的 重 载

函数重载是用来描述同名函数具有相同或者相似功能,但数据类型或者是参数不同的函数管理操作的称呼。

在同一作用域内,可以有一组具有相同函数名、不同参数列表的函数,这组函数称为重载函数。

重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字 空间的污染,对于程序的可读性有很大的好处。

不要将不同功能的函数定义为重载函数,以免出现对调用结果的误解。

要进行函数重载,必须遵循以下一些规则

(1)同名函数的参数必须不同,不同之处可以是参数的类型或参数的个数。

(2)通过参数类型的匹配,程序决定使用哪一个同名函数。

(3)必须考虑参数的默认值对函数重载的影响。

下面通过一个实例来说明如何进行函数重载。

【例6-11】函数重载(代码6-11.txt)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_2.1.4 函数的声明
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_4.2 运算符优先级和结合性
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×