楼主:
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没有传回
基础类别的定义。
等等我有眼花看错吗,这是个“教学”?那个string过了ctor就被销毁了,所以ptr过了这区也无效
楼主:
Lauyea (Lauyea)
2018-10-04 21:40:00那请问我有什么办法可以把结果保留到用方法呼叫吗?我有试过用new去分配内存,但是位址好像一直有问题
作者: jerryh001 2018-10-05 00:32:00
strcpy
为何不直接用string存就好 何必new delete strcpy? 反正你要copy
不要存c_str() 这是FAQ了你要存成C literial的话 要自己strcpy即使string物件没销毁 c_str()还是会变动的
楼主:
Lauyea (Lauyea)
2018-10-05 08:39:00谢谢大家,那我再用strcpy试试看
为什么不直接存一个string 然侯直接写进那个string,要存一个char pointer?
一样的问题 str3过了ctor就被回收了像steve讲的 你把_message弄成string来存会比较好
因为char pointer是范例上的 原po不想改吧是说exception有要避免new/delete吗?没有的话就new给_message 再strcpy给_message如何?