当前位置: 首页 > 文档资料 > C++大学教程 >

6.3 访问结构成员

优质
小牛编辑
122浏览
2023-12-01

访问结构成员或类成员时,使用成员访问运算符(member access operator),包括圆点运算符(.)和箭头运算符(—>)。圆点运算符通过对象的变量名或对象的引用访问结构和类成员。例如,要打印 timeObject 结构的 hour 成员,用下列语句:

cout << timeobject.hour;

要打印timeRef引用的结构的hour成员,用下列语句:

cout << timeRef.hour;

箭头运算符由负号(—>和大于号(>)组成,中间不能插空格,通过对象指针访问结构和类成员。假没指针 timePtr 声明为指向 Time 对象,结构 timeObject 的地址赋给timePtr。要打印指针为 timePtr 的 timeObjeet 结构的 hour 成员,用下列语句:

tzmePtr=&timeObject;
cout<<timePtr->hour;

表达式 timePtr->hour 等价于 (*timePtr).hour,后者复引用指针并用圆点运算符访问hour成员。
这里的括号是必需的,因为圆点运算符的优先级高于复引用指针运算符(*)箭头运算符和圆点运算符以及括号与方括号([])的优先级较高,仅次于第3章介绍的作用域运算符,结合律为从左向右。

常见编程错误 6.1

表达式(*timePtr).hour 指 timePtr 所指 struct 的 hour 成员。省略括号的 *timePtr.hour 是个语法错误,因为 . 的优先级高于 * ,表达式变成 *(timePtrhour)。这是个语法错误,因为指针要用箭头运算符引用成员。