模板和异常处理

原创 2013年12月06日 10:46:27
模板是一种基于类型参数生成函数和类的机制,是实现代码重用机制的一种工具。它可以实现类型参数化,即把类型定义为参数,从而实现代码重用。
模板按照用途分为函数模板和类模板。

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

 

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


 


相关文章推荐

异常处理模板

  • 2014年10月12日 18:41
  • 2KB
  • 下载

模板与异常处理.

  • 2014年12月12日 11:51
  • 69KB
  • 下载

C++笔记 模板类,异常处理

1 模板类template class A{ public: A(T a){ this->a = a; } protected: T a; };普通类继承模板类...

第四章函数模板与异常处理

函数模板 using namespace std; //模版就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码重用性。模版可以分为两类,一个是函数模版...
  • qqMCY
  • qqMCY
  • 2013年06月28日 13:57
  • 771

(十一)异常处理,函数模板,类模板

(十一)异常处理,函数模板,类模板 2016.7.41.异常处理#include using namespace std; int func1(int n1,int n2){ if(n2==...

ADB 异常处理

  • 2017年10月26日 10:55
  • 11.17MB
  • 下载

java基础关于异常处理方式

  • 2016年08月20日 09:42
  • 13.49MB
  • 下载

Java 入门 之 字符串与异常处理

本节主要要求掌握,字符串的常见方法(字符串转字符数组、字符串的比较函数、提取索引位置字符、将字符串转换为一个字节数组(???),返回字符串索引、去掉字符串前面的空格、从字符串中提取子串、大小写转换、替...

struts2的异常处理

  • 2015年03月18日 23:29
  • 55KB
  • 下载

java异常处理

  • 2014年12月13日 20:18
  • 124KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模板和异常处理
举报原因:
原因补充:

(最多只允许输入30个字)