函數呼叫表示式

函數呼叫 是包含函數名稱後接函數呼叫運算子 ()的表示式。 如果函數已定義為接收參數,則要傳送至函數的值會列在函數呼叫運算子的括弧內。 引數清單可以包含以逗點區隔的任意數目表示式。 它也可以是空的。

函數呼叫表示式的類型是函數的傳回類型。 此類型可以是完整類型、參照類型或類型 void

僅 C 函數呼叫表示式一律是 rvalue。

C++ 根據函數的結果類型,函數呼叫屬於下列其中一個值種類:

  • 如果結果類型是 lvalue 參照類型或 ""函數類型的 rvalue 參照,則為 lvalue
  • ""如果結果類型是物件類型的 rvalue 參照,則為 xvalue
  • 其他觀察值中的 ""(prvalue) rvalue
以下是函數呼叫運算子的部分範例:
stub()
overdue(account, date, amount)
notify(name, date + 5)
report(error, time, date, ++num)
未指定函數呼叫引數的評估順序。 在下列範例中:
method(sample1, batch.process--, batch.process);
引數 batch.process-- 可能最後評估,導致最後兩個引數以相同的值傳遞。