Bum*_*ang 3 c++ pointers operator-keyword
有人可以向我解释一下" - >"在C++中意味着什么吗?
如果可以的例子,它们可以帮助我更好地理解.谢谢.
它是取消引用后跟属性访问(或方法调用)的快捷方式.
在代码中,这里有一些这种等价的例子:
Foo *foo;
// field access
foo->bar = 10;
(*foo).bar = 10;
// method invocation
foo->baz();
(*foo).baz();
Run Code Online (Sandbox Code Playgroud)
当你有这么长的序列时,这是特别方便的.例如,如果你有一个单链表数据结构,其中每个元素都有一个指向下一个元素的指针,下面是查找第五个元素的等效方法(但是看起来更好一些):
linked_list *head, *fifth;
fifth = head->next->next->next->next;
fifth = (*(*(*(*head).next).next).next).next;
Run Code Online (Sandbox Code Playgroud)
它通常被称为"成员访问"运算符.基本上,a->b是一种更好的写作方式(*a).b.您可以将其a->b视为"访问b对象中的成员/函数a指向".你可以大声朗读(或者自己认为)作为" a会员访问b".
在我刚刚检查的结构化C++代码的随机样本中(来自不同人编写的几个不同项目),10%的代码行(不包括头文件)包含至少一个成员访问运算符.
| 归档时间: |
|
| 查看次数: |
2456 次 |
| 最近记录: |