为什么(新的Foo()) - > baa()工作但新的Foo() - > baa()没有?

时间:2014-03-06 21:06:32

标签: c++ operators

为什么(new Foo())->baa()有效但new Foo()->baa()没有?它与->优先级或类似的东西有关吗?我不知道这个称为正确的术语,我是C ++的新手......

1 个答案:

答案 0 :(得分:5)

这是因为operator precedence()->的优先级高于new,因此第二个表达式会被视为您写的:

new ( ( (Foo() -> baa)() ) )