标签: c++ operators
为什么(new Foo())->baa()有效但new Foo()->baa()没有?它与->优先级或类似的东西有关吗?我不知道这个称为正确的术语,我是C ++的新手......
(new Foo())->baa()
new Foo()->baa()
->
答案 0 :(得分:5)
这是因为operator precedence。 ()和->的优先级高于new,因此第二个表达式会被视为您写的:
()
new
new ( ( (Foo() -> baa)() ) )