在C++中,函数的形式参数有传值、传地址和传引用3种方式。本质上,传地址和传引用也是传值,传的是地址值,然后通过该地址值间接访问主调函数中的存储单元。引用本质上是受限的指针,很多用法比较特殊,在这里不进行详细讨论,主要传指针的情况。使用指针作为形式参数的目的有两点,第一,向被调函数传递较多的数据;第二,在被调函数中修改主调函数中的存储单元。当需要向被调函数传递较多的数据又不希望数据被修改时,应该使用常量形式参数。
常量和指针结合时有多种形式,不同形式含义不同。由于使用指针应设计到两个方面的内容,即指针变量本身和指针所指的存储单元,根据两个方面的内容是否为常量,将常量指针的形式分为3类(以字符型指针为例):
(1)指针本身是常量不可改变,定义形式有如下两种方式,char*constpContent;const(char*)pContent;其中pContent是常量,而*pContent是可变的,即指针不能改变指向,不能重新赋值,而指针所指的存储单元的内容可以被改变。
(2)指针所指向的内容是常量不可改变,定义形式为如下两种方式:4常量在类的定义中的应用类是实现面向对象程序设计技术的基础,类的定义中包含数据成员和函数成员。即可以在类中定义数据成员常量,也可以定义函数成员常量。数据成员常量不能直接在类定义时初始化,而应该通过构造函数中的初始化列表来初始化,这样做的目的是使得构造类的对象是可以为该对象的常量数据成员分配一个确定的值,在该对象的生存期内它是个常量,不能被改变,类不同的对象可以拥有不同的常量值。
在下面的示例代码中给出了数据成员常量的定义和初始化的方法。如果不需要在某成员函数中更改数据成员,那么应该将这个成员函数声明为常量成员函数,这样可以防止在成员函数中改变数据成员,包括非常量数据成员,并且使程序员更容易明白自己的意图。
在类中声明常量成员函数的方法是在该函数的参数列表的圆括号后面加上关键字const即可。比如,在上述示例代码中,将类Test的成员函数print定义为常成员函数,这样在print函数体内将不能改变任何数据成员的值,包括iCount在内。本文来自于《电脑编程技巧与维护》杂志。电脑编程技巧与维护杂志简介详见
在C++程序设计教学过程中,存在许多的重点和难点,常量的语法形式与应用就是其中之一,以C++程序设计的教学实践为基础,对其进行了充分的研究与分析,给出了相应的程序代码示例。讨论主要包括两种形式的符号常量、函数的常吉林职称量形式参数和常量与类的关系等内容。
作者:杨在春 单位:山东科技大学信息系