1
为什么(new Foo())->baa()
有效,但是new Foo()->baa()
没有?它是否与->
优先或类似的事情?我不知道正确的称呼这个,我是新来的C++ ...为什么(new Foo()) - > baa()可以工作,但是新的Foo() - > baa()没有?
为什么(new Foo())->baa()
有效,但是new Foo()->baa()
没有?它是否与->
优先或类似的事情?我不知道正确的称呼这个,我是新来的C++ ...为什么(new Foo()) - > baa()可以工作,但是新的Foo() - > baa()没有?
这是因为operator precedence。 ()
和->
比new
更高的优先级,那么第二个表达式被视为如果你写:
new (((Foo() -> baa)()))
因为'Foo'需要拥抱的时候,才做任何事情,甚至远程生产。 –
显然,船长! –