调用函数时,例如在中,以各个实参(argument)(可为调用场所提供的,或为默认的)来初始化各个形参,然后执行函数体中的语句。

    1. int main()
    2. for(int arg : {-3, -2, -1, 0, 1, 2, 3})
    3. // 每次 n 被从 arg 复制初始化

    函数可通过或者抛出终止。

    函数不是对象;不存在函数的数组,而且函数不能按值传递或被其他函数所返回。允许指向函数的指针和到函数的引用,而它们可用于不能使用函数自身之处。

    每个函数都具有一个类型,它由函数的返回类型,所有形参的类型(进行数组到指针和函数到指针转换后,见形参列表),函数是否为 noexcept (C++17 起),以及对于成员函数的 cv 限定性和引用限定性所构成。函数类型亦拥有。不存在 cv 限定的函数类型(不要与如 int f() const; 这样的 cv 限定函数类型,或如 const f(); 这样的返回cv 限定类型的函数相混淆)。

    同一作用域中,多个函数可有相同名称,只要其形参列表,以及对于成员函数的 cv 或引用限定不同即可。这被称作。仅以返回类型及 noexcept 说明 (C++17 起)相区别的函数声明之间无法重载。

    本节未完成原因:链接到其他 Function 子页面

    除了函数左值,函数调用表达式还支持函数指针,被解引用的成员函数指针,lambda 表达式,以及重载了函数调用运算符的任何类类型的对象。这些类型被统称为,而且在 C++ 标准库中无所不在地使用它们,示例可见二元谓词 (BinaryPredicate) 和的用法。