关闭

模板和异常处理

标签: c++异常模板类
696人阅读 评论(0) 收藏 举报
分类:
模板是一种基于类型参数生成函数和类的机制,是实现代码重用机制的一种工具。它可以实现类型参数化,即把类型定义为参数,从而实现代码重用。
模板按照用途分为函数模板和类模板。

一个函数模板可以经参数实例化后生成许多仅类型参数不同的模板函数;一个类模板可以经参数实例化后生成许多仅类型参数不同的模板类,而每个模板类都可以定义各自的许多对象,如下图所示。

 

C++语言模板的声明格式为:

template<模板参数表>

模板定义体

template为声明模板的关键字;

模板参数表可包括一个或一个以上的模板参数,每个模板参数由关键字class和模板形参两部分组成,当模板形参多于一个时,各模板形参用逗号分开;

模板定义体是该模板的作用体,可以是函数或类。 

函数模板的语句格式为:

template <class   类型参数表>

返回类型 函数名(函数模板形参表)

{

   函数体

}

如:

template<class T>      //模板形参为T

Tabs(T x)     //函数模板

{

  if (x >=0) return x;

  else return -x;

}

其中,关键字class也可以用关键字typename代替。例如:

template  < class T >

template  < typename  T >

类模板 

类模板的语句格式为:

template<模板形参表>

class类名

{

类模板体定义;

};

模板类按下列形式声明对象:

模板类 <模板参数表对象名1对象名n

   

异常处理
异常处理是C++语言的一个主要特性。只要执行程序时遇到错误,就称为发生了异常。异常是特殊类型的错误。它在程序运行时发生。为了避免程序因异常而终止,我们需要在程序中处理这些异常。

异常处理的基本思想:C++语言异常处理用于错误检测函数无法处理错误的情况。这种函数抛出异常,如果有异常处理器捕获这个异常,则处理这个异常。如果没有异常处理器捕获这个异常,则程序终止。

异常处理的实现:

throw表达式语法:

   throw   表达式

try块语法:

try

   复合语句

catch(异常声明类型)

   复合语句

catch(异常声明类型)

   复合语句

   ……

try块语法:

try

   复合语句

catch(异常声明类型)

   复合语句

catch(异常声明类型)

   复合语句

   ……

运行于异常生命期的五个阶段,参照例11.13

1)程序或运行库遇到一个错误状况(阶段1)并且抛出一个异常(阶段2)。

2)程序的运行停止于异常点,开始搜索异常处理函数。搜索沿调用栈向上搜索。

3)搜索结束于找到了一个异常申明与异常对象的静态类型相匹配(阶段3)。于是进入相应的异常处理函数。

4)异常处理函数结束后,跳到此异常处理函数所在的try 块下面最近的一条语句开始执行(阶段5


 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57192次
    • 积分:1041
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:44篇
    • 译文:1篇
    • 评论:2条