在线文档教程
C++
语言 | Language

Functions

功能

函数是C++实体,它们将陈述%28a功能体%29加a名称和一个零或更多的列表功能参数...

二次

// function name: "isodd" // parameter list has one parameter, with name "n" and type int // the return type is bool bool isodd(int n) { // the body of the function begins return n % 2; } // the body of the function ends

二次

调用函数时,例如在函数调用表达式,参数将根据调用地提供的参数%28初始化,或者违约%29和函数体中的语句被执行。

二次

int main() { for(int arg : {-3, -2, -1, 0, 1, 2, 3}) std::cout << isodd(arg) << ' '; // isodd called 7 times, each // time n is copy-initialized from arg }

二次

函数可以通过回归或通过投掷安例外...

阿功能声明可能出现在任何范围内,但功能定义可能只出现在命名空间范围中,或者成员和朋友函数,在类范围内。在没有朋友说明符的类主体中声明的函数是类成员函数。此类函数具有许多附加属性,请参见成员函数关于细节。

函数不是对象:没有函数数组,函数不能通过值传递或从其他函数返回。指针和对函数的引用是允许的,并且可以在函数本身不能使用的地方使用。

每个函数都有一个类型,由函数%27s返回类型、数组到指针后的所有参数%28的类型以及函数到指针的转换组成,请参见参数表%29,自C++17%29以来该函数是否为no,对于成员函数,则为cv限定和ref限定。函数类型也有语言链接没有cv限定函数类型%28与CV-合格函数如int f() const;或函数返回简历-合格类型,如std::stringconst f(29%。

未命名函数可由Lambda-表达式...

同一作用域中的多个函数可能具有相同的名称,只要它们的参数列表和成员函数的cv/ref限定条件不同。这被称为功能过载.函数声明,由于C++17%29不能重载,因此返回类型和no以外规范%28的类型不同。

功能对象

除了函数lvalue,函数调用表达式还支持指向函数的指针、取消引用的指向成员函数的指针,Lambda-表达式,以及重载函数调用运算符的类类型的任何变量。这些类型一起被称为FunctionObject斯,它们通过C++标准库被广泛使用,例如,参见BinaryPredicateCompare...

标准库还提供了一些预定义的库。函数对象模板以及新的合成方法(包括%28)std::mem_fn,,,std::bind,和std::function29%。

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/language/function