C++中函数使用的基本知识学习教程

2020-01-06 14:34:59刘景俊
易采站长站为您分析C++中函数使用的基本知识学习教程,涵盖了函数的声明和参数以及指针等各个方面的知识,非常全面,需要的朋友可以参考下  

函数是执行某种操作的代码块。函数可以选择性地定义使调用方可以将实参传递到函数中的输入形参。函数可以选择性地返回值作为输出。函数可用于在单个可重用块中封装常用操作(理想情况是使用可清晰地描述函数行为的名称)。以下函数从调用方接受两个整数并返回其总和;a 和 b 是 int 类型的参数。


int sum(int a, int b)
{
  return a + b;
}

可以从程序中任意数量的位置调用函数。传递给函数的值是实参,其类型必须与函数定义中的形参类型兼容。


int main()
{
  int i = sum(10, 32);
  int j = sum(i, 66);
  cout << "The value of j is" << j << endl; // 108
}

对于函数长度没有实际限制,不过良好的设计应以执行单个明确定义的任务的函数为目标。复杂算法应尽可能分解成易于理解的更简单函数。
在类范围中定义的函数称为成员函数。在 C++ 中(与其他语言不同),函数还可以在命名空间范围中定义(包括隐式全局命名空间)。这类函数称为 free 函数或非成员函数;它们在标准库中广泛使用。
函数声明的各个部分
最小函数声明包含返回类型、函数名和参数列表(可能为空),以及向编译器提供附加说明的可选关键字。函数定义包含声明以及函数体(这是大括号之间的所有代码)。后接分号的函数声明可以出现在程序中的多个位置处。它必须在每个翻译单元中对该函数的任何调用之前出现。根据单个定义规则 (ODR),函数定义必须仅在程序中出现一次。
函数声明的必需部分有:
返回类型,指定函数将返回的值的类型,如果不返回任何值,则为 void。在 C++11 中,auto 是有效返回类型,可指示编译器从返回语句推断类型。在 C++14 中,还允许使用 decltype(auto)。有关详细信息,请参阅下面的“返回类型中的类型推导”。
函数名,必须以字母或下划线开头,不能包含空格。一般而言,标准库函数名中的前导下划线指示私有成员函数,或不是供你的代码使用的非成员函数。
参数列表(一组用大括号限定、逗号分隔的零个或多个参数),指定类型以及可以用于在函数体内访问值的可选局部变量名。
函数声明的可选部分有:
constexpr,指示函数的返回值是常量值,可以在编译时进行计算。


       constexpr float exp(float x, int n)
{
  return n == 0 ? 1 :
    n % 2 == 0 ? exp(x * x, n / 2) :
    exp(x * x, (n - 1) / 2) * x;
};