c++ 函数进阶

  • 内联函数
  • 引用变量
  • 如何按引用传递参数
  • 默认参数
  • 函数重载指函数参数的数目和类型 不同,不能通过返回类型区别两个同名函数。函数重载不可以根据返回类型区分
  • 函数模板具体化

1、内联函数

常规函数和内联函数之间主要的不同是在于c++编译器如何将他们组合到程序中。

定义内联函数:

  • 在函数声明前 加上关键字 inline
  • 在函数定义前加上关键字 inline

c语言使用宏来实现内联函数功能:

#define SQUARE(X) X*X

2、引用变量

int & rate = rats

引用是变量的别名,主要作用是用于函数的形参,通过将引用变量用作参数,函数将使用原始数据,而不是副本。

c++使用&来声明引用,int & 表示指向int的引用

函数默认参数

char * left(const char *str,int n =1)

参数n的默认值为1,如果不传递n,就默认为一,否则传递的值将覆盖1

函数重载:

void print(const char *str,int width);
void print(double d,int width)
void print(long l, int width)

c++允许定义函数名相同的函数,但必须是输入参数的数量和类型不同,如果只是返回类型相同,c++认为这两个是一个函数。

函数模板: template <typename Anytype> 可以理解为 anyname就是我们的一种数据类型,根据实际情况函数中可以使用不同的数据类型

定义函数模板:

template <typename Anytype>
void Swap(Anytype &a,Anytype &b)
{
       函数体
}
or


template <class  Anytype>
void Swap(Anytype &a,Anytype &b)
{
       函数体
}

调用:直接 使用 Swap(int x,int y)

类模板:

template<typenameT>
classStack
{
}

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注