为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我写catch(string)与catch(string &e)出来的结果是一样的?这个e有什么区别呀

为什么我写catch(string)与catch(string &e)出来的结果是一样的?这个e有什么区别呀

正在回答

2 回答

因为throw抛出来的东西就是一个string类型的“除数不能为0"这个字符串。

你的第一种写法catch(string),只要是抛出来的字符串都能够捕获到,但是你在打印的时候你只能通过【cout<<"除数不能为0"<<endl;】打印出来, 因为你没有一个指针来接受你字符串内容。

而用catch(string &e),捕获的时候e会指向“除数不能为0”这个字符串的地址,因此在打印的时候只需要【cout<<e<<endl】;就可以把“除数不能为0”这句话打印出来。


2 回复 有任何疑惑可以回复我~

&e是为了输出catch到的字符串(“除数不能为0”)的时候cout<<e<<endl;,如果字符串没有名字,输出的时候cout<<?<<endl;?处填什么,总不能填上“除数不能为0”吧

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66234    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

为什么我写catch(string)与catch(string &e)出来的结果是一样的?这个e有什么区别呀

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信