const的用法
可以用两种不同的方式将const关键字用于指针。第一种方法是让指针指向一个常量对象,
这样可以防止使用该指针修改所指向的值,第二种方法是将指针本身声明为常量,
这样可以防止改变指针指向的位置。
注意:如果数据类型本身不是指针,则可以将const数据或非const数据的地址赋给指向
const的指针,但只能将非const数据的地址赋给非const指针。
禁止将常量数组的地址赋给非常量指针将意味着不能将数组名作为参数传递给使用非常量
形参的函数。
尽可能使用const
将指针参数声明为指向常量数据的指针有两条理由:
1.这样可以避免由于无意间修改数据而导致的编程错误;
2.使用const使得函数能够处理const和非const实参,否则将只能接受非const数据
如果条件允许,则应将指针形参声明为指向为指向const的指针。
double trouble = 2.0E30;
const double * const stick = &trouble;
其中,stick只能指向trouble,而stick不能用来修改trouble的值。简而言之,
stick和*stick都是const。
如何将方法的答案传回给调用程序呢?最直接的方法是让方法返回一个引用,该引用指向
股价总值较高的对象。因此,用于比较的方法的原型如下:
const Stock & topval(const Stock & s) const;
该函数隐式地访问一个对象,而显示的访问另一个对象,并返回其中一个对象的引用。
括号中的const表明,该函数不会修改被显示地访问的对象;而括号后的const表明,
该函数不会修改被隐式地访问的对象。由于该函数返回课两个const对象之一的引用,
因此返回类型也应为const引用。
可以用两种不同的方式将const关键字用于指针。第一种方法是让指针指向一个常量对象,
这样可以防止使用该指针修改所指向的值,第二种方法是将指针本身声明为常量,
这样可以防止改变指针指向的位置。
注意:如果数据类型本身不是指针,则可以将const数据或非const数据的地址赋给指向
const的指针,但只能将非const数据的地址赋给非const指针。
禁止将常量数组的地址赋给非常量指针将意味着不能将数组名作为参数传递给使用非常量
形参的函数。
尽可能使用const
将指针参数声明为指向常量数据的指针有两条理由:
1.这样可以避免由于无意间修改数据而导致的编程错误;
2.使用const使得函数能够处理const和非const实参,否则将只能接受非const数据
如果条件允许,则应将指针形参声明为指向为指向const的指针。
double trouble = 2.0E30;
const double * const stick = &trouble;
其中,stick只能指向trouble,而stick不能用来修改trouble的值。简而言之,
stick和*stick都是const。
如何将方法的答案传回给调用程序呢?最直接的方法是让方法返回一个引用,该引用指向
股价总值较高的对象。因此,用于比较的方法的原型如下:
const Stock & topval(const Stock & s) const;
该函数隐式地访问一个对象,而显示的访问另一个对象,并返回其中一个对象的引用。
括号中的const表明,该函数不会修改被显示地访问的对象;而括号后的const表明,
该函数不会修改被隐式地访问的对象。由于该函数返回课两个const对象之一的引用,
因此返回类型也应为const引用。