看板 C_and_CPP 關於我們 聯絡資訊
(一) 在C# class 屬於reference type 原本以為C++ 也是reference type 但查了網路 似乎說 C++預設 class是value type 但也可以當reference type使用 https://msdn.microsoft.com/en-us/library/hh438479.aspx 想問 c++ 的class是 屬於 reference type 還是 value type? (二) 現在接觸到一點C++ 有點搞不懂 C#和C++的物件生成方式 class classA { public: int num; } 剛開始學物件導向是C# 使用物件的宣告是 classA a = new classA a.num=1 a是屬於 變數 還是 指標? 但C#應該不能操作指標 因為跟C++一樣有用到new 我搞不懂C++和C# 物件使用的分別 有人可以跟我解釋一下嗎? C++物件生成的方式有兩種? 1.直接宣告 物件變數 classA a a.num=1 跟C#的使用方式很像 但是不用new? 2.宣告物件指標 再用new給予記憶體位置 classA *a = new classA a.num->1 C++這兩種方式 有什麼不同? 哪一種方式 比較可以對應到C#? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.35.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1523252188.A.B93.html
rbufghj9713: 一個在stack 04/09 13:59
rbufghj9713: 一個在Heap 04/09 13:59
jerryh001: 2 04/09 14:19
那c++ 的CLASS 是什麼 TYPE? ※ 編輯: x246libra (61.220.35.157), 04/09/2018 15:05:47
uranusjr: C++ 的 class 本身無所謂 type 04/09 15:50
x246libra: 沒有嗎? 那微軟網站解釋CLASS的TYPE 是? 04/09 19:40
firose: 以儲存位置看, C++ 直接建立放在 stack, 用 new 放在 heap 04/09 19:52
firose: C# value type 放在 stack, reference type 放在 heap 04/09 19:52
uranusjr: C++ 是以語法 (new 與否) 決定, class 本身不決定 04/10 14:27
uranusjr: 反過來說即使不是 class 也仍然可以是 value 或 ref 04/10 14:28
uranusjr: 所以 class 與否與 valu/reference 是不相干的兩件事 04/10 14:28
x246libra: 謝謝您的回覆 04/10 22:46