C++常成员函数

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++常成员函数相关的知识,希望对你有一定的参考价值。

常成员函数

       在C++类中定义成员函数,函数有如下类型:

(1) 非const类型,是普通的成员函数,可以修改成员变量;

(2) const类型,是常成员函数,只能够访问成员变量,不可以修改成员变量;

       声明函数和定义函数时都要有const关键字,在调用时不必加const,常成员函数可以引用 const 成员变量,也可以引用非const的成员变量。在常成员函数中,只能够访问成员变量,不可以修改成员变量的值,从而起到保护成员变量的作用。

如下是一个程序测试例子:

       程序编译错误:

       提示在print()函数中,无法修改成员变量name的值。因为, print()定义为const类型,是常成员函数。所以,在print()函数中执行 strcpy(name, "abc"); 语句,修改成员变量name的值是非法的。

怎么样利用常成员函数呢?

(1) 如果在一个类中,有些成员变量的值允许改变,另一些成员变量的值不允许改变,则可以将一部分成员变量声明为 const ,以保证其值不被改变。非const 成员函数可以引用这些成员变量的值,并修改非const成员变量的值。

(2) 如果要求所有的成员变量的值都不允许改变,则可以将所有的成员变量声明为const,或将对象声明为const(常对象)。然后,用const成员函数引用成员变量,这样起到“双保险”的作用,切实保证了成员变量不被修改。

       不要误认为常对象中的成员函数都是常成员函数。常对象只保证“所有”成员变量的值不被修改。如果在常对象中的成员函数没有加const声明,编译系统把它作为非const成员处理。

       还需要指出一点:常成员函数不能调用另一个非const成员函数。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于C++常成员函数的主要内容,如果未能解决你的问题,请参考以下文章

C++常成员函数

c++ const修饰成员函数

C++特殊成员

转C++ const成员变量和成员函数(常成员函数)

C++:常成员函数

12.2 C++常对象成员