Re: [問題] 建構物件的問題
原文刪
==================================
直接把你的code丟到vs2013
以下不定義 XD copy constructor
http://imgur.com/nvetyVK

很明顯在Foo:Foo前就 copy 了一份 XD 最後做 ~XD
含Foo:Foo裡的就會產生兩次 ~XD
但是因為 copy 你的 ptr 會被刪兩次-gg
以下是定義 XD copy constructor
http://imgur.com/Vt3c82B

這邊不做 copy 而直接放到 stack 給 Foo:Foo 用
所以只會有一次 Foo:Foo裡的 ~XD
這只是各compiler 的convention 不同,不能說它是bug,實務上來說除非真的有必要
class、struct 應避免使用passed by value
以你的例子來說在 class 有做 new 那更不應做 passed by value
-------------------------------
打完臉也 XD 了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.143.169
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1503636807.A.563.html
推
08/25 15:10, , 1F
08/25 15:10, 1F
推
08/25 17:49, , 2F
08/25 17:49, 2F
→
08/25 17:49, , 3F
08/25 17:49, 3F
→
08/25 17:53, , 4F
08/25 17:53, 4F
→
08/25 17:54, , 5F
08/25 17:54, 5F
討論串 (同標題文章)