throw 类对象
#include <iostream>
#include <cstdio>
using namespace std;
class BadSrcType {};
class BadDestType {};
class BadProcessType
{
public:
BadProcessType()
{
cout << "BadProcessType构造函数do n";
}
BadProcessType(const BadProcessType &obj)
{
cout << "BadProcessType copy构造函数do n";
}
~BadProcessType()
{
cout << "BadProcessType析构函数do n";
}
};
throw 类对象、类型异常
void my_strcpy3(char *to, char *from)
{
if (from == NULL)
{
throw BadSrcType();
}
if (to == NULL)
{
throw BadDestType();
}
//copy是的 场景检查
if (*from == 'a')
{
printf("开始 BadProcessType类型异常 n");
throw BadProcessType(); //会不会产生一个匿名对象?
}
if (*from == 'b')
{
throw &(BadProcessType()); //会不会产生一个匿名对象?
}
if (*from == 'c')
{
throw new BadProcessType; //会不会产生一个匿名对象?
}
while (*from != '