模板中的static&异常

作业:

封装数组类强化;设计被存储的元素为类对象;
char name[32]
char *pname;
优化Teacher类, 属性变成 char *panme, 构造函数里面 分配内存
注意:深拷贝。

模板中的static变量:
image.png
异常

注意事项:
1、异常严格按照类型匹配;
2、异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上的构造的所 有对象,都会被自动析构。
3、异常接口声明
1)为了加强程序的可读性,可以在函数声明中列出可能抛出的所有异常类型,例如:
void func() throw (int,char,char *,B ); //这个函数func()能够且只能抛出类型A B C D及其子类型的异常。
2)如果在函数声明中没有包含异常接口声明,则次函数可以抛掷任何类型的异常,例如:
void func();
3)一个不抛掷任何类型异常的函数可以声明为:
void func() throw();
4) 如果一个函数抛出了它的异常接口声明所不允许抛出的异常,unexpected函数会被调用,该函数默认行为调用terminate函数中止程序。

4、异常的生命周期
my_strcpy练习:参照课堂Code
容错处理
throw int 异常处理 catch(int )//可以不写变量
throw char * catch(char *)如何分配内存?
throw 类对象类型函数调用如下:


image.png

throw 类对象引用 类型函数调用如下:


image.png

throw 类对象指针类型函数调用如下:


image.png

请参见详细Code。

你可能感兴趣的:(模板中的static&异常)