[問題] 在Dev上可以執行VS卻不行?

看板C_and_CPP (C/C++)作者 (YU)時間12年前 (2013/11/16 12:13), 編輯推噓6(6019)
留言25則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ Visual Studio 2008 錯誤結果(Wrong Output): 原本是在Dev上寫的 也可以執行 但是在Visual Studio上就沒辦法執行成功(編譯有過) 程式碼(Code):(請善用置底文網頁, 記得排版) http://paste.plurk.com/show/1722058/ 補充說明(Supplement): 試了很久還是找不到問題... 我想應該是Postfix2Infix()的問題...其他函式測試過應該沒問題 程式菜鳥希望大大幫忙QQ很想知道問題出哪 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.141.77

11/16 12:16, , 1F
compile error應該是出在copy(...)
11/16 12:16, 1F

11/16 12:19, , 2F
看錯了...我用VS2013...別理我
11/16 12:19, 2F

11/16 12:59, , 3F
Rule of Three
11/16 12:59, 3F

11/16 14:16, , 4F
補一下複製建構式之類的
11/16 14:16, 4F

11/16 14:32, , 5F
不太懂樓上意思...可以再解釋詳細一點嗎QQ謝謝
11/16 14:32, 5F

11/16 14:57, , 6F
wiki: rule of three c++
11/16 14:57, 6F

11/16 15:56, , 7F
result的資源都被你delete 掉了
11/16 15:56, 7F

11/16 15:56, , 8F
當然會執行錯誤
11/16 15:56, 8F

11/16 15:57, , 9F
只要成員有指標就要寫這五個方法
11/16 15:57, 9F

11/16 15:59, , 10F
成員有指標倒是不一定要寫. 關鍵還是有做資源管理
11/16 15:59, 10F

11/16 15:59, , 11F
dtor,copy/move ctor,copy/move =
11/16 15:59, 11F

11/16 16:01, , 12F
只是通常都要寫是沒錯~
11/16 16:01, 12F

11/16 16:06, , 13F
丟給gc管理行嗎(逃
11/16 16:06, 13F

11/16 16:11, , 14F
那這裡就把解構式拿掉就好了! (正解)
11/16 16:11, 14F

11/16 16:11, , 15F
還真的說不定會對....
11/16 16:11, 15F

11/16 16:48, , 16F
把解構子拿掉真的就可以了...
11/16 16:48, 16F

11/16 16:51, , 17F
這...這樣真的可以嗎=口=
11/16 16:51, 17F

11/16 17:02, , 18F
你想想原本為什麼需要解構式呢?, 現在沒有會有問題的
11/16 17:02, 18F

11/16 17:03, , 19F
你就補一下複製建構式就可以了. 順手也寫一下賦值運算子
11/16 17:03, 19F

11/16 17:06, , 20F
move也要寫,尤其是回傳obj
11/16 17:06, 20F

11/16 17:07, , 21F
中間可能會蹦出一個無名obj
11/16 17:07, 21F

11/16 17:33, , 22F
不一定要寫. 只定義複製賦值時, 移動賦值可以不寫.
11/16 17:33, 22F

11/16 17:34, , 23F
如果我對於 move 的認知沒有錯的話....
11/16 17:34, 23F

11/16 17:38, , 24F
但會失去移動語意的好處. (效率低)
11/16 17:38, 24F
大概上網爬了下文更改了...是像這樣嗎 http://paste.plurk.com/show/1722239/ ※ 編輯: NinaYu 來自: 140.113.141.77 (11/16 17:52)

11/16 19:29, , 25F
COMPILE 正確~
11/16 19:29, 25F
文章代碼(AID): #1IXl3Qrw (C_and_CPP)
文章代碼(AID): #1IXl3Qrw (C_and_CPP)