【问题标题】:Prefix increment operator error C++前缀增量运算符错误 C++
【发布时间】:2016-02-11 00:46:58
【问题描述】:

我猜这与优先级有关,但为什么这是合法的

vector<string>::iterator iter = vec.begin();
iter++->empty();

但这不是。

vector<string>::iterator iter = vec.begin();
++iter->empty();

有人能解释一下这里发生的事件链吗?

【问题讨论】:

    标签: c++ prefix postfix-operator


    【解决方案1】:

    箭头运算符的优先级高于增量,因此++iter-&gt;empty() 被解析为++(iter-&gt;empty()),而不是(++iter)-&gt;empty()。后增量版本有效,因为只有一种方法可以解析 iter++-&gt;empty()

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 2012-01-05
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多