看板 C_and_CPP 關於我們 聯絡資訊
最近問問題發現我表達能力很差, 標題每次都想半天.. C++ 在做類別的時候,是用 class / struct 去實做 C 裡面識別字只有 struct 沒有 class 也沒有解析(::) 的概念 那 C++ 用 struct 自定義時, 如果裡面都是 data member, 還是將它視為 class 嗎? -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142
loveflames:C++的struct就是class,只差在private/public 11/22 02:10
loveme00835:預設的存取權限跟繼承方法不一樣而已, 兩個是一樣的東 11/22 02:17
tropical72:嗯,您說的我知道.所以C++應只有"類別"而無"結構體"吧? 11/22 02:18
loveme00835:只要你達成 POD 的條件, 就可以當成是 C 語言結構 11/22 02:22
james732:你可以定義一下你的「類別」與「結構體」各是什麼嗎? 11/22 02:22
與其去定義「類別」與「結構體」,我想我只能說出他們二個的差別 我對於類別和結構體最大的差別扣除那些 虛擬、多型、封裝、繼承、overload 運算子...etc 之外. 最大差別應在於 "function member" 上的實做, 我的確也還不夠力去用 C 去模擬 C++ 的 class, 目前也只有想到在 struct 裡面塞 function pointer 去模擬 function member 鑑於這點, 所以才問是不是 Cpp 裡面並沒有結構體 因為那種東西實際上不知會不會解讀為 class OO{ public: int member1, member2; }
akasan:讓我回想起 t 大精采的文章 #1AzOEYfZ 11/22 02:24
我會去看這篇的, 謝謝您的分享 ※ 編輯: tropical72 來自: 180.177.76.142 (11/22 02:31)
james732:唔,其實function member跟struct塞function pointer不同 11/22 02:34
akasan:Inside The C++ Object Model <-- 去弄個中文版來看看 11/22 02:36
loveme00835:其實還是全域函式, obj.func() 會被變成 func(&obj) 11/22 02:36
tropical72:XD 這方面我會再研究.. 謝謝樓上指正. 11/22 02:36
loveme00835:只是透過語言的方式讓你以為他真的是裡面的成員 11/22 02:36
tropical72:謝謝 asksan 推薦 11/22 02:36
loveme00835:是「語法」, 打錯 11/22 02:38
pcedison:這篇很不錯,提出我的長期疑惑,感謝! 11/22 09:28
pcedison:另外 akasan大你說得那篇文章怎麼找呢?我不太會用 11/22 09:28
loveme00835:那是一本書~ 11/22 13:02
tropical72:pcedison:文章列表直接貼上 #1AzOEYfZ(文章代碼).enter 11/22 14:06
loveme00835:0.0 原來是更前面那句 11/22 15:08
pichubaby:while(YouLoveMe() ? LetItBe() : LetMeFree()); 11/23 12:45
tropical72:樓上的 while 用得不錯.. 11/23 18:59