[問題] 請教這2種 class初始化 的差別

看板C_and_CPP作者 (機機勳)時間7年前 (2016/11/18 20:23), 編輯推噓8(803)
留言11則, 8人參與, 最新討論串1/1
想請問以下這兩種方式在底層的運作有什麼不一樣? SomeClass x(someValue); SomeClass* x = new SomeClass(someValue); 只是插在回傳型態不同而已嗎? 上面是reference,下面是pointer -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.181.54 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1479471791.A.885.html

11/18 21:49, , 1F
allocate on stack or heap
11/18 21:49, 1F

11/18 22:02, , 2F
一樓解答你了
11/18 22:02, 2F

11/19 00:11, , 3F
前幾篇有討論過,不過是C的
11/19 00:11, 3F

11/19 09:35, , 4F
我記得第二個還可以new 繼承他的物件
11/19 09:35, 4F

11/21 14:03, , 5F
第一個只是把 x 定義成具有 SomeClass 類別的東西
11/21 14:03, 5F

11/21 14:04, , 6F
但因為沒有實體化, 所以無法操作
11/21 14:04, 6F

11/21 14:35, , 7F
實體化??C++跑到現實世界中嗎!?
11/21 14:35, 7F

11/21 15:17, , 8F
五樓梗嗎
11/21 15:17, 8F

11/22 04:30, , 9F
第一個不是單純call constructor 而已?我哪裡看錯了
11/22 04:30, 9F

11/22 04:30, , 10F
11/22 04:30, 10F

11/22 11:41, , 11F
建構子起來了..那物件就存在啦!只是是local的..XD
11/22 11:41, 11F
文章代碼(AID): #1OBlAlY5 (C_and_CPP)