文章目录
  1. extern “C”
  2. 重载函数
  3. 函数模板定义
  4. 异常处理

extern “C”

链接提示符extern “C”表明该函数是用C语言编写的。链接提示符必须放在函数体外,建议放在头文件中。

重载函数

函数名相同,但是参数列表(参数的类型,数目)不同的函数。

函数重载解析的步骤如下:

  • 确定函数调用考虑的重载函数的集合;
  • 从重载函数集合中选择函数,该函数可以在给出实参个数与类型的情况下调用;
  • 选择与调用最匹配的函数;

函数模板定义

一种用来自动生成各种函数实例的算法,将函数接口(参数与返回类型)的全部或部分类型进行参数化,而函数体保持不变

1
2
3
4
template <class Type>
Type min (Type a, Type b){
return a < b ? a : b;
}

异常处理

C++中异常用类来实现,即针对每一种异常,要定义一个对应的类。如”栈空时pop异常”。

1
2
3
class poPOnEmpty{
/* ... ... */
};

在出现异常的时候抛出此异常

1
2
3
4
5
6
7
8
9
10
11
class istack{
/* ... ... */
void pop(){
if(! this->empty()){
/* ... ... */
}
else{
throw poPOnEmpty();
}
}
}

因此,在其他函数调用istack类的pop方法时就有可能出现此异常,使用try-catch来捕获异常

1
2
3
4
5
6
7
8
{
try{
stack_context.pop()
}
catch(poPOnEmpty()){
/* ... ... */
}
}