什么是箭头运算符(->
)的同义词?我可以用什么来代替箭头运算符,` - >`?
87
A
回答
114
下面的两个表达式是等效的:
a->b
(*a).b
(受运算符重载,如康拉德提到,但是这是不寻常的)。
61
a->b
通常是(*a).b
的同义词。括号这里是必要的,因为运营商*
和.
:*a.b
的绑定强度将不起作用,因为.
绑定更强,并首先执行。因此这相当于*(a.b)
。
但是请注意超载:由于->
和*
都可能超载,因此它们的含义可能会有很大差异。
13
我主要是看它的权利到左,并呼吁“在”
foo->bar->baz = qux->croak
变为:
“巴兹在FOO酒吧成为qux发牢骚。”
35
C++语言将箭头运算符(->
)定义为取消引用指针的同义词,然后在该地址上使用.
操作符。
例如:
如果你有一个对象,anObject
和指针,aPointer
:
SomeClass anObject = new SomeClass();
SomeClass *aPointer = &anObject;
为了能够使用的对象方法中的一种取消引用指针,并做了该地址的方法调用:
(*aPointer).method();
其可以与箭头操作符来写:
aPointer->method();
箭头运算符的existents的主要原因是它缩短了一个非常常见的任务的键入,并且它也容易忘记指针取消引用周围的括号。如果您忘记了括号中的。运营商将结合做强那么* - 运算符,让我们的例子中执行如下:
*(aPointer.method()); // Not our intention!
其他一些答案也同时提及的是C++运算符可以过载,它不是那很普通。
14
在C++ 0x中,运营商得到了第二含义,表示函数或lambda表达式
auto f() -> int; // "->" means "returns ..."
相关问题
- 1. 如何使用 - >(箭头)运算符?
- 2. 在Java中,箭头运算符' - >'是做什么的?
- 3. 我可以用什么来代替GridView?
- 4. - >带数组的箭头运算符?
- 5. Lambda表达式替换为什么我可以使用“%”运算符而不是“>”运算符
- 6. “>>>”运算符 - 用于什么?
- 7. 什么可以用来代替ob_start(“ob_gzhandler”);
- 8. 什么是()=>运算符?
- 9. 我可以用什么来代替<input type =“submit”/>在Html.BeginForm中
- 10. 我们可以用什么来代替nstimer?
- 11. 我可以使用什么来代替mysql_fetch_array?
- 12. 我还可以使用什么来代替HashMap?
- 13. 我可以用什么来代替#sql表中的sql函数
- 14. 我可以使用什么来代替DOMSubtreeModified?
- 15. 我可以使用什么来代替Java中的Vector?
- 16. swift中的箭头运算符
- 17. 打击 “严格” 模式,箭头(>)运算符
- 18. 什么是c运算符>>
- 19. 运算符>>和运算符>>>在java中有什么区别?
- 20. 我可以使用Perl中的smartmatch运算符替换绑定运算符吗?
- 21. 什么决定我是否可以使用比较运算符?
- 22. Kotlin中的箭头(“ - >”)操作符有什么作用?
- 23. 什么是这个ES6的替代箭头var matchLang =(route)=> new RegExp('^'+ route.replace('*','。*'))。test(browLoc)?
- 24. Ctrl +箭头:什么算法或标准?
- 25. 为什么箭头运算符“ - >”不能在boost :: numeric :: ublas :: vector <...> :: iterator上工作?
- 26. 是<>是否符合SARGable?如果不是,我可以用什么来代替?
- 27. 我应该用什么来代替Directory.SetCurrentDirecory?
- 28. 我应该用什么来代替clutter_score_new?
- 29. 我应该用什么来代替LoadWithPartialName()?
- 30. 我应该用什么来代替ping?
超载问题的返回类型少了很多不寻常的比你想象的。不久前,STL实现者对于某些迭代器类型没有重载的` - >`运算符,所以你*有*使用`* .`。许多图书馆对它们的定义不一致。当您使用模板并且不知道确切的类型时变得非常烦人。 – 2008-10-21 10:15:00
编辑完成后,我认为你的帖子会以很好的方式召唤它。 – 2008-10-21 10:16:54
你也可以做`a [0]。b`而不是`(* a).b`。但它不会像结构合理。 – 2013-06-19 03:35:11