【转】浅析auto_ptr(10)
时间:2025-07-14
时间:2025-07-14
智能指针,auto_prt的基本用法,及其示例
throw CatException("Exception:猫咪姓名不能为空!");
}
strcpy(__name, name.c_str());
}
void SetName(char *name)
{
if (strlen(name)==0)
{
throw CatException("Exception:猫咪姓名不能为空!");
}
strcpy(__name, name);
}
void SetAge(int age)
{
if (age<=0)
{
throw CatException("Exception:猫咪年龄只能为正!");
}
__age = age;
}
//重载操作符
Cat &operator=(const Cat& ocat)
{
delete [] __name;
__name = new char[strlen(ocat.__name)+1];
strcpy(__name, ocat.__name);
return *this;
#ifdef NEEDDEBUG
cout << "DEBUG:猫咪已被成功创建(年龄:" << __age << ",名字:" << __name << ")" << endl;
#endif
}
//析构
~Cat ()
{
#ifdef NEEDDEBUG
cout << "DEBUG:猫咪将被删除(年龄:" << __age << ",名字:" << __name << ")" << endl; #endif
delete [] __name;
上一篇:预分解窑操作的体会(二)