C对象成员的引用,有哪几种方式归纳

北京看皮肤科好的医院 http://m.39.net/pf/a_4655748.html

3对象成员的使用

在程序中经常需要访问对象中的成员,访问对象中的成员可以有三种方法:

(1)通过对象名和成员运算符访问对象中的成员;

(2)通过指向对象的指针访问对象中的成员;

(3)通过对象的引用变量访问对象中的成员;

C++中类对象引用成员的方式,与C语言的struct结构体访问成员一样。

3.1通过对象名和成员运算符访问对象中的成员

假设有如下的类定义:

classstudent//以class开头

{

public:

charname[32];

charaddr[32];

longlongnumber;

public:

voidprint();

};

voidstudent::print()

{

cout"name="nameendl;

cout"addr="addrendl;

cout"number="numberendl;

}

studentstud1,stud2;

在程序中可以写出如下的语句:

stud1.number=;//假设number已定义为公用的成员

表示将整数赋给对象stud1中的成员变量number,其中“.”是“成员运算符”,用来对成员进行限定,指明所访问的是哪一个对象中的成员。注意不能只写成员名而忽略对象名。

访问对象中成员的一般形式为:

对象名.成员名

不仅可以在类外引用对象的公用成员变量,而且,还可以调用对象的公用成员函数,同样,需要指出对象名,如:

stud1.print();//正确,调用对象stud1的公用成员函数

print();//没有指明是哪一个对象的print()函数

对于print()没有指明对象名,编译时把print()作为普通函数处理。如下是一个程序测试例子:

可以看到,定义了student类,然后,定义对象如下:

studentstud;

然后,给对象的成员变量赋值。在访问成员变量的时候,在对象名后面使用点号“.”来访问对象的某个成员。

注意,在类体外访问的成员,需要定义为public类型,才可以在类体外访问。

3.2通过指向对象的指针访问对象中的成员

可以通过指针访问对象中的成员,如果有以下程序段:

可以看到,定义一个指针对象p,同时,给它赋值,如下:

student*ps=stud;

然后,通过指针对象访问对象的成员,如同C语言的struct结构体访问结构体成员一样,通过指针运算符“-”来访问对象的成员。所以,有:

ps-name---访问指针对象ps的name成员变量;

ps-addr---访问指针对象ps的addr成员变量;

ps-print()---访问指针对象ps的print成员函数;

3.3通过对象的引用来访问对象中的成员

如果为一个对象定义了一个引用,它们是共同占用同一段存储单元,实际上,它们是同一个对象,只是用不同的名字表示而已。因此完全可以通过引用来访问对象中的成员,其概念和方法与通过对象名来引用对象中的成员是相同的。测试例子如下:

在这个例子中,定义了stud对象,然后,定义一个student类型的引用变量s,同时,设置引用变量s引用stud对象。

然后,引用变量s的成员变量设置数据。最后,调用stud对象的print()函数输出信息。此时,看到stud对象输出的成员变量数据,就是引用变量s设置的数据。

所以,引用变量s就是引用了stud对象。并且操作stud对象的成员变量。




转载请注明:http://www.aierlanlan.com/rzgz/2903.html

  • 上一篇文章:
  •   
  • 下一篇文章: