[問題] 自訂例外類別

看板C_and_CPP作者 (Lauyea)時間5年前 (2018/10/04 21:26), 5年前編輯推噓5(5013)
留言18則, 7人參與, 5年前最新討論串1/1
開發平台(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沒有傳回 基礎類別的定義。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.57.132 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1538659571.A.D59.html

10/04 21:34, 5年前 , 1F
等等我有眼花看錯嗎,這是個「教學」?
10/04 21:34, 1F

10/04 21:37, 5年前 , 2F
那個string過了ctor就被銷毀了,所以ptr過了這區也無效
10/04 21:37, 2F

10/04 21:40, 5年前 , 3F
那請問我有甚麼辦法可以把結果保留到用方法呼叫嗎?
10/04 21:40, 3F

10/04 21:40, 5年前 , 4F
我有試過用new去分配記憶體,但是位址好像一直有問題
10/04 21:40, 4F

10/05 00:32, 5年前 , 5F
strcpy
10/05 00:32, 5F

10/05 02:53, 5年前 , 6F
為何不直接用string存就好 何必new delete strcpy? 反
10/05 02:53, 6F

10/05 02:53, 5年前 , 7F
正你要copy
10/05 02:53, 7F

10/05 07:47, 5年前 , 8F
不要存c_str() 這是FAQ了
10/05 07:47, 8F

10/05 07:47, 5年前 , 9F
你要存成C literial的話 要自己strcpy
10/05 07:47, 9F

10/05 07:48, 5年前 , 10F
即使string物件沒銷毀 c_str()還是會變動的
10/05 07:48, 10F

10/05 08:39, 5年前 , 11F
謝謝大家,那我再用strcpy試試看
10/05 08:39, 11F
我把ArrayIndexOutOfBoundsException下面的實作改成這樣: http://codepad.org/H7ZOpFqI 但是.message()變成一片空白,從head file去cout也沒有東西。 ※ 編輯: Lauyea (1.161.57.132), 10/05/2018 10:14:08

10/05 12:47, 5年前 , 12F
為什麼不直接存一個string 然侯直接寫進那個string,
10/05 12:47, 12F

10/05 12:47, 5年前 , 13F
要存一個char pointer?
10/05 12:47, 13F

10/05 13:00, 5年前 , 14F
一樣的問題 str3過了ctor就被回收了
10/05 13:00, 14F

10/05 13:02, 5年前 , 15F
像steve講的 你把_message弄成string來存會比較好
10/05 13:02, 15F

10/05 13:03, 5年前 , 16F
因為char pointer是範例上的 原po不想改吧
10/05 13:03, 16F

10/05 13:05, 5年前 , 17F
是說exception有要避免new/delete嗎?沒有的話就new
10/05 13:05, 17F

10/05 13:06, 5年前 , 18F
給_message 再strcpy給_message如何?
10/05 13:06, 18F
我後來也感覺這個catch的方式挺沒效率的,我應該就先照schoolさん說的試試看。 不好意思讓人覺得有點鬼打牆,我一開始也不是很清楚這樣宣告類別的用意,謝謝大家。 ※ 編輯: Lauyea (1.161.57.132), 10/05/2018 14:56:26
文章代碼(AID): #1RjXJprP (C_and_CPP)