[问题] 自订例外类别

楼主: Lauyea (Lauyea)   2018-10-04 21:26:08
开发平台(Platform):Win10
编译器:VB2017
问题(Question):执行结果跟预期的不同
预期的正确结果(Expected Output):https://i.imgur.com/8iSjYo5.png
错误结果(Wrong Output):https://i.imgur.com/JkIIBlK.png
程式码(Code):我是参考网络上的教学网站
https://openhome.cc/Gossip/CppGossip/CustomExceptionClass.html
补充说明(Supplement):
我自己测试到 _message = str2.c_str(); 这行都还没有问题,但是在用.message()方法
呼叫以后就变成乱码了,有在想是不是string转入char*的问题,或是_message没有传回
基础类别的定义。
作者: a27417332 (等号卡比)   2018-10-04 21:34:00
等等我有眼花看错吗,这是个“教学”?那个string过了ctor就被销毁了,所以ptr过了这区也无效
楼主: Lauyea (Lauyea)   2018-10-04 21:40:00
那请问我有什么办法可以把结果保留到用方法呼叫吗?我有试过用new去分配内存,但是位址好像一直有问题
作者: jerryh001   2018-10-05 00:32:00
strcpy
作者: steve1012 (steve)   2018-10-05 02:53:00
为何不直接用string存就好 何必new delete strcpy? 反正你要copy
作者: Killercat (杀人猫™)   2018-10-05 07:47:00
不要存c_str() 这是FAQ了你要存成C literial的话 要自己strcpy即使string物件没销毁 c_str()还是会变动的
楼主: Lauyea (Lauyea)   2018-10-05 08:39:00
谢谢大家,那我再用strcpy试试看
作者: steve1012 (steve)   2018-10-05 12:47:00
为什么不直接存一个string 然侯直接写进那个string,要存一个char pointer?
作者: sarafciel (Cattuz)   2018-10-05 13:00:00
一样的问题 str3过了ctor就被回收了像steve讲的 你把_message弄成string来存会比较好
作者: school4303 (某爬虫类)   2018-10-05 13:03:00
因为char pointer是范例上的 原po不想改吧是说exception有要避免new/delete吗?没有的话就new给_message 再strcpy给_message如何?

Links booklink

Contact Us: admin [ a t ] ucptt.com