你确定++ 运算符优先级比-> 高?
追答这个和运算符优先级有什么关系?当一个表达式存在多种结合可能性的时候才按运算符优先级来决定结合顺序,而你这个是iter++ ->empty(),只有一种结合可能性,iter只能和++结合,不然还能和别的什么东西结合?总不能“越过”++和后面的->结合吧?
除非是++iter->empty()这种前置自增写法,iter既可以和前面++结合也可以和后面->结合,这时候才会存在运算符优先级的问题,这种情况下的确先->后++。但你这个后置自增写法则根本不存在运算符优先级的问题,iter只可能和++结合,它身边没别的运算符了。
你要是不信的话自己写一个简单的class测试下就行了,重载++(int)和->操作符,在其中cout,就能看出哪个先哪个后了。