c ++

时间:2018-09-19 16:45:15

标签: c++ casting operator-precedence static-cast

我在某些c ++代码中有一些旧样式的转换,我想将其转换为新样式。我看过优先级运算符和关联运算符documentation,但我听不懂。

( double ) myValueA() / myValueB()

等效于

static_cast<double>( myValueA() ) / myValueB()

或到

static_cast<double>( myValueA() / myValueB() )

我想其他数字运算符(* / +-)的答案也将相同

2 个答案:

答案 0 :(得分:6)

演员表具有较高的优先级,因此等同于

static_cast<double>(myValueA()) / myValueB()

答案 1 :(得分:6)

( double ) myValueA() / myValueB()

( double )是c样式的强制转换。如果我们查看operator precedence table,将会发现它比算术运算符具有更高的优先级,

( double ) myValueA() / myValueB()

相同
static_cast<double>(myValueA()) / myValueB()