标题:异常处理程序段中的小问题
只看楼主
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
结帖率:86.21%
已结贴  问题点数:20 回复次数:3 
异常处理程序段中的小问题
程序代码:
……
class Cat{
public:

 Cat(){cout<<"Cat()"<<endl;}
~Cat(){cout<<"~Cat()"<<endl;}
};
class Dog{
public:

 void* operator new(size_t sz){  //这里为什么是void* 类型?下面delete的为什么没有*
cout<<"allocating a Dog"<<endl;throw 47;}

 void operator delete(void *p){

 cout<<"deallocating a Dog"<<endl;
::operator delete(p);}
};
class Use{

 Dog* op;

 Cat* bp;
pubilc:

 Use(int count=1){
cout<<"Use()"<<endl;
bp=new cat[count];
op=new Dog;}  //这里会不会调用重载的函数,如果调用了,那Dog的空间不是不会被创建吗!(我认为不会调用吧)
~Use(){

 cout<<"~Use()"<<endl;
delete[] bp;//这里应该不调用重载吧。有个[]
delete op;}//这里调用重载吗?
};
int main(){
try{
Use ur(3);
}catch(int){
cout<<"error"<<endl;}
}//---------------------------
请解决上述问题,其他的代码仅供参考
2011-05-22 15:56
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
得分:0 
高手Come on,人呢?怎么没有回答的?
2011-05-22 17:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:14 
佩服,你每一个问题都使人有热血的冲动
2011-05-23 08:41
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:605
专家分:2489
注 册:2009-4-8
得分:0 
你的这些问题在C++之父的 《C++语言的设计和演化》里有提到。百度谷歌也会有提到。

迭代的是人,递归的是神。
2011-06-06 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-340733-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.432416 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved