c++中经常需要访问对象中的成员的三种⽅式
可以有3种⽅法:
通过对象名和成员运算符访问对象中的成员;
通过指向对象的指针访问对象中的成员;
通过对象的引⽤变量访问对象中的成员。
⼀、通过对象名和成员运算符访问对象中的成员
例如在程序中可以写出以下语句:
stud1.num=1001;//假设num已定义为公⽤的整型数据成员
表⽰将整数1001赋给对象stud1中的数据成员num。其中“.”是成员运算符,⽤来对成员进⾏限定,指明所访问的是哪⼀个对象中的成员。注意不能只写成员名⽽忽略对象名。
访问对象中成员的⼀般形式为
对象名.成员名
不仅可以在类外引⽤对象的公⽤数据成员,⽽且还可以调⽤对象的公⽤成员函数,但同样必须指出对象名,如
stud1.display( );//正确,调⽤对象stud1的公⽤成员函数
display( );//错误,没有指明是哪⼀个对象的display函数
由于没有指明对象名,编译时把display作为普通函数处理。应该注意所访问的成员是公⽤的(public )还是私有的(private )。只能访问public 成员,⽽不能访问private成员,如果已定义num为私有数据成员,下⾯的语句是错误的:
stud1.num=10101;//num是私有数据成员,不能被外界引⽤
在类外只能调⽤公⽤的成员函数。在⼀个类中应当⾄少有⼀个公⽤的成员函数,作为对外的接⼝,否则就⽆法对对象进⾏任何操作。
⼆、通过指向对象的指针访问对象中的成员
我们已经介绍了指向结构体变量的指针,可以通过指针引⽤结构体中的成员。⽤指针访问对象中的成员的⽅法与此类似。如果有以下程序段:
class Time
{
public : //数据成员是公⽤的
int hour;
int minute;
};Time t,*p;//定义对象t和指针变量p
p=&t;//使p指向对象t
cout<<p->hour;//输出p指向的对象中的成员hour
在p指向t的前提下,p->hour,(*p).hour和t.hour三者等价。
三、通过对象的引⽤变量来访问对象中的成员
如果为⼀个对象定义了⼀个引⽤变量,它们是共占同⼀段存储单元的,实际上它们是同⼀个对象,只是⽤不同的名字表⽰⽽已。因此完全可以通过引⽤变量来访问对象中的成员。
如果已声明了Time类,并有以下定义语句:
Time t1; //定义对象t1
Time &t2=t1;//定义Time类引⽤变量t2,并使之初始化为t1
cout<<t2.hour;//输出对象t1中的成员hour
由于t2与t1共占同⼀段存储单元(即t2是t1的别名),因此t2.hour就是t1.hour。指针调用成员函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。