指向运算符(->)与 成员运算符(.) 区别详解
来源:互联网 发布: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);
另外,引用对象的成员表示与一般对象的成员表示相同。
由同一个类所创建的对象的数据结构是相同的,类中的成员函数是共享的。两个不同的对象的名字是不同的,它们的数据结构的内容(即数据成员的值)是不同的。因此,系统对已定义的对象仅给它们分配数据成员变量,而一般数据成员又都为私有成员,不同对象的数据成员的值可以是不相同的。
我们已经知道,对象是类的实例。对象是属于某个已知的类。因此,定义对象之前,一定要先定义好该对象的类。下面简单的介绍对象的定义。
对象的定义格式
对象在确定了它的类以后,其定义格式如下:
<类名><对象名表>
其中,<类名>是待定的对象所属的类的名字,即所定义的对象是该类类型的对象。<对象名表>中可以有一个或多个对象名,多个对象名时用逗号分隔。<对象名表>中,可以是一般的对象名,还可以是指向对象的指针名或引用名,也可以是对象数组名。如:
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。
- 指向运算符(->)与 成员运算符(.) 区别详解
- 指向运算符与成员运算符的区别
- 成员运算符(·)和指向结构体成员运算符(->)的区别
- 成员运算符(·)和指向结构体成员运算符(->)的区别
- 结构体成员运算符与指向结构体成员运算符
- C++指向成员运算符重载
- 成员运算符(.)与指针运算符(->)的区别
- c++ 中指针运算符->与成员运算符. 的区别
- 运算符重载4(有指针成员指向动态内存时)
- 运算符,位运算符,成员运算符,身份运算符,与数学函数
- JavaScript运算符详解(与awk运算符类似)
- 成员指针运算符
- 选择运算符成员
- 成员访问运算符
- 成员访问运算符
- C++ 成员运算符
- 关于非成员运算符和成员运算符的区别
- Python新手学习基础之运算符——成员运算与身份运算
- C++学习:一个通用ini配置文件操作类
- 堆和栈的区别
- PHP导出带样式的Excel
- php单表多字段多关键字搜索的类适用于小型网站和后台
- JAVASE学习笔记二
- 指向运算符(->)与 成员运算符(.) 区别详解
- FPGA_Embedded_9_28
- 看月亮爬上来
- “927工程测绘关键技术与示范应用”通过科技部验收
- linux常用系统调用函数
- Android环境配置及模拟器启动不了
- FPGA_Embedded_9_29~10_6
- 对于Windows,GB18030是不可用的
- 关于ROS的个人见解