指向运算符(->)与 成员运算符(.) 区别详解

来源:互联网 发布:mac酷狗怎么切换歌曲 编辑:程序博客网 时间:2024/05/29 09:48
C++ 对象和对象的定义
我们已经知道,对象是类的实例。对象是属于某个已知的类。因此,定义对象之前,一定要先定义好该对象的类。下面简单的介绍对象的定义。

对象的定义格式

对象在确定了它的类以后,其定义格式如下:

<类名><对象名表>

其中,<类名>是待定的对象所属的类的名字,即所定义的对象是该类类型的对象。<对象名表>中可以有一个或多个对象名,多个对象名时用逗号分隔。<对象名表>中,可以是一般的对象名,还可以是指向对象的指针名或引用名,也可以是对象数组名。如:

TDate date1, date2, *Pdate, date[31];

对象成员的表示方法

一个对象的成员就是该对象的类所定义的成员。对象成员有数据成员和成员函数,其表示方式如下:

<对象名>.<成员名>

或者

<对象名>.<成员名>(<参数表>)

前者用来表示数据成员的,后者用来表示成员函数的。如:

date1.year, date1.month, date1.day;

date1.SetDate(int y, int m, int d);

这里,·是一个运算符,该运算符的功能是表示对象的成员。

指向对象的指针的成员表示如下:

<对象指针名>-><成员名>

或者

<对象指针名>-><成员名>(<参数表>)

这里的(->)是一个表示成员的运算符,它与前面讲过的·运算符的区别是:
(->)用来表示指向对象的指针的成员,表示数据成员
(·)用来表示一般对象的成员,表示成员函数。


下面的两种表示是等价的:

<对象指针名>-><成员名>



(*<对象指针名>).<成员名>

这对于成员函数也适用。如:

Pdate->year, Pdate->month, Pdate->day;

或者

(*Pdate).year, (*Pdate).month, (*Pdate).day;

Pdate->SetDate(int y, int m, int d);

或者

(*Pdate).SetDate(int y, int m, int d);

另外,引用对象的成员表示与一般对象的成员表示相同。

由同一个类所创建的对象的数据结构是相同的,类中的成员函数是共享的。两个不同的对象的名字是不同的,它们的数据结构的内容(即数据成员的值)是不同的。因此,系统对已定义的对象仅给它们分配数据成员变量,而一般数据成员又都为私有成员,不同对象的数据成员的值可以是不相同的。
我从网上搜了老一会里,它们的区别我一开始也分布清楚。相信有许多和我一样的人,为啦方便自己和他人,所以写啦这篇blog。
原创粉丝点击