→ nh60211as: 你省了什麼空間,兩個class都要存長寬變數 01/07 20:32
→ happykaka: 我就是不知道啊,物件的函式到底是怎樣配置和執行的, 01/07 21:51
→ happykaka: 一般成員函式和靜態成員函式的配置和執行方式又是差在 01/07 21:51
→ happykaka: 裡?我找到的都是變數的,找不太到函式方面的資料。 01/07 21:52
推 lycantrope: 我以為物件函式是放在type,並不會跟著物件本身吧 01/07 22:08
→ stucode: 一般成員函式(無論靜態與否)都是不佔物件空間的。 01/07 22:15
→ stucode: virtual function 例外。 01/07 22:15
推 ko27tye: 省空間是在static修飾成員變數的狀況吧 舉例來說100個丈 01/07 23:53
→ ko27tye: 夫共用一個老婆 很省空間阿 01/07 23:53
→ yesiah: 沒有省空間,static member function 跟 friend function 01/08 00:24
→ yesiah: 功能上差不多,最大差別是 static 定義在 class 內,另一 01/08 00:24
→ yesiah: 個隨便你放 01/08 00:24
推 CoNsTaR: 一般 member function 和 static 的差別就是一般 member 01/08 04:47
→ CoNsTaR: function 有一個隱含的 this 參數啊 01/08 04:47
→ CoNsTaR: 你用 static 然後又傳 this 進去,那直接去寫 C 不就好了 01/08 04:47
→ CoNsTaR: orz 01/08 04:47
推 Dracarys: 看到一半 跟樓上想的一樣 01/08 07:18
→ Lipraxde: 有時候看到 C++ 中怪怪的用法,都不太能確定是真的怪還 01/08 11:58
→ Lipraxde: 是是自己孤陋寡聞沒見過的 design pattern XD 01/08 11:58
→ happykaka: 請問 CoNsTaR版友 說的「直接去寫 C」是為什麼呢? 01/08 12:44
→ happykaka: 回 Lipraxde,我很確定是真的怪,所以我想知道怪在哪裡 01/08 12:44
推 b0920075: C++的語法背後就是幫你弄好好讓你方便用,結果你用更麻 01/08 17:51
→ b0920075: 煩的方法去做一樣的事情還沒啥好處 01/08 17:51
→ happykaka: 所以靜態會省空間是指靜態變數,靜態函式沒差。把一般 01/08 23:06
→ happykaka: 成員函式就可以做的事,用靜態成員函式來繞路,沒有任 01/08 23:06
→ happykaka: 何好處,因此不建議這樣使用,是嗎? 01/08 23:07
推 sarafciel: C++有sizeof可以看某個型態占的空間大小 你可以試試看 01/09 19:55
→ sarafciel: 用靜態函式跟一般成員函式有沒有差XD 01/09 19:55
→ happykaka: 2個類別的size都是8,因為都是2個int,所以類別裡的 01/10 00:04
→ happykaka: 函式確實不佔空間,是這樣嗎? 01/10 00:05
→ sarafciel: 簡單講 函式占空間 但函式不在類別的Instance裡佔 01/10 01:51
→ sarafciel: 關鍵字memory layout 可以去查一下 01/10 01:52
推 TRFgee: C++的精髓就在模組化 01/10 16:02
→ TRFgee: 怎麼有人在那邊 01/10 16:02
→ TRFgee: 土法煉鋼佔空間啊 01/10 16:02
推 Dracarys: 佔空間是只有instructions佔空間,這各種function都是 01/10 21:31
→ Dracarys: 一樣的。instance裡當然不佔空間 所有call的位址都可以 01/10 21:31
→ Dracarys: 被statically resolved何須在instance裡佔空間?又不是 01/10 21:31
→ Dracarys: runtime polymorphism。D&E: What you don’t use, yo 01/10 21:31
→ Dracarys: u don’t pay for. 01/10 21:31
推 Dracarys: 其實你可以把member function當一般free function加上 01/10 22:13
→ Dracarys: 隱含this參數,static member function就像一般free fu 01/10 22:13
→ Dracarys: nction,只不過一般free function要access非public dat 01/10 22:13
→ Dracarys: a編譯器不會給過,雖然還是可在runtime存取。 01/10 22:13
→ Dracarys: 不開優化,三個Perimeter的code邏輯上都一樣,call sit 01/10 23:05
→ Dracarys: e也都會把this當第一個argument傳入rdi。 01/10 23:05
→ Dracarys: 看你這麼愛玩this應該對這有興趣 01/10 23:07