[問題] 自訂例外類別

作者: 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