专业编程基础技术教程

网站首页 > 基础教程 正文

C++ 引用,如何定义对象的常引用?linux C++第50讲

ccvgpt 2024-10-09 09:04:50 基础教程 9 ℃

对象的常引用

一个变量的引用就是变量的别名。实质上,变量名和引用名都指向同一段内存单元。如果形参为变量的引用名,实参为变量名。那么,在调用函数进行“参数传递(实参传递数据给形参)”的时候,并不是为形参另外开辟一个存储空间(常称为:建立实参的一个拷贝),而是把实参变量的地址传给形参(引用名),这样引用名也指向实参变量。

下面是一个例子,介绍类对象的常引用。

C++ 引用,如何定义对象的常引用?linux C++第50讲

可以看到,定义了stud, stud1对象。定义了set_name()函数,参数是一个“常引用变量”。那么,在 set_name() 函数中不可以修改常引用对象的值。所以,调用:

stud.set_name(stud1);

此时,在set_name()函数中引用stud1对象,而且是const类型,是“常引用”,所以,不可以修改引用对象stud1的数据。从而保护好stud1对象的成员。

在C++面向对象程序设计中,经常用常指针和常引用作为函数参数。这样既保证数据安全,使数据不被随意修改,在调用函数时又不必建立实参变量的拷贝。提高了程序运行效率,又保护数据的安全性。

const 型数据的小结

本小节介绍const型数据和引用,利用它们可以对共用的数据进行保护。下面归纳总结几种const型数据的用法和区别,假设有student类。

(1) student const stud; 或者 const student stud;

表示stud是常对象,它的值在任何情况下都不能够改变。

(2) void student::func() const

表示func()函数是student类中的常成员函数,可以引用,但是,不能够修改本类中的成员变量。

(3) student* const ps;

表示ps是一个student类型的指针,是常指针,所以,不可以修改指针ps的值。但是,可以修改ps指针指向对象的数据。

(4) const student* ps;

表示ps是一个student类型的指针,是指向一个常对象。所以,不可以修改ps指向对象的数据。但是,可以修改ps指针的值。

(5) const student& stud = s;

表示 stud是一个引用,引用s对象。而且是常引用对象。所以,不可以修改stud引用对象的数据。

总结

本章介绍了C++类对象的数据保护,这个知识点体现了面向对象编程的“封装、保护”特性,一个对象可以有隐私的数据,可以不被任何修改的数据。

那么,C++提供了const关键字,可以有效地保护数据的安全性。所以,在很多函数的设计中,为了保护数据的安全性,可以定义为const类型。善于使用const数据类型,可以有效地保护数据的安全性。

读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。

最近发表
标签列表