二级概念题

  1. 内联函数:

计算机在碰到循环或者分支语句时,将跳过一些指令,向前或者向后跳到特定的地址。常规的函数调用也是程序跳到另一个地址,并在函数结束时返回。这样来回跳跃并记录跳跃位置意味着使用函数时,需要一定的开销。

而内联函数则将编译代码与程序代码“内联”起来了,也就是说,编译器将使用相应的函数代码替换函数调用。程序无需跳到另一个位置处执行代码,再跳回来。

也就是用空间代价去换取时间上节省的好处。

使用时必须在函数声明前,和函数定义前加上关键字 inline

注意递归函数不能写成内联函数。

类内部的函数不用加inline也被视为内联函数。在类中定义的成员函数全部默认为内联函数。可以显示加上 inline 标识符,或者不加。在类中声明的成员函数,如果没加inline,在类外定义该成员函数时加了inline,该成员函数也为内联函数。

  1. 引用变量:

C++新增了一种复合类型——引用变量。引用是已定义的变量的别名。别名和原名等价,可以交替使用。但引用变量的主要用途是用作函数的形参,通过将引用变量作参数,函数将使用原始数据而不是其副本。这样除了指针以外,引用也为函数处理大型结构提供了一种非常方便的途径。

理解上这样去理解,就像声明中char *指的是char的指针一样,int&指的是int的引用。

按引用传递和按值传递也是不一样的,区别就是这里了。

注意:引用变量必须在声明的时候初始化,引用变量和原名的地址一模一样

  1. 函数重载:

函数重载是C++在C上新增的功能,也叫做函数多态。

函数重载的关键是函数的参数列表——也称为函数特征标,与函数返回值的类型没有关系。

若两个函数的参数数目和类型相同,参数的排列顺序也相同,则它们的特征标相同。

匹配函数时,并不区分const和非const变量。

  1. 函数模板:(将同一种算法用于不同类型时)

是通用函数的描述,即使用泛型来描述函数。比如交换俩个double,改成int就需要重新复制一边代码,并且把里面的int全部换成double,这个就很麻烦。而函数模板就很好的解决了这个问题。

template <typename AnyType>

void swap(AnyType &a, AnyType &b)

{

       AnyType temp;

       Temp=a;

A=b;

B=temp;

}

其中template 和typename/class是必须的,AnyType是自己定义的类型。

需要交换int的函数时,编译器将按模板模式创建这样的函数。

注意:

使用的时候,先将template <typename AnyType>

定义在程序头部,之后给出函数定义或者函数原型,在程序中使用的时候,直接就调用该函数就行,编译器会自动根据数据类型而正确使用该模板。

另外,函数模板不能缩短任何可执行程序,就像以手工方式定义了这些函数一样,最终的代码不包含任何模板,而只包含了为程序生成的实际函数。

函数模板也可以进行重载。

  1.  划分等价类
  2. ▪ 边界值分析法
  1. ▪ 错误推测法
  2. ▪ 因果图法
  3. ▪ 判定表组成法
  4. ▪ 正交试验设计
  5. ▪ 场景法
这篇文章,是又一个故事的结束...
lazy's story is continuing.
原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/14087022.html