[問題] 把程式碼寫在.h跟寫在.cpp中有啥差別??

看板C_and_CPP作者 (牛頓運動定律)時間15年前 (2010/03/06 18:04), 編輯推噓8(8010)
留言18則, 10人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 最近看到一個人寫的程式他把所有class跟function都寫在.h檔中 然後我在include 去使用,想問這到底有啥好處?? 產生的執行檔有差吧??compiler or linker 會怎麼處理?? 有人知道嗎?感謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 189.1.164.4

03/06 18:06, , 1F
首先要知道 #include "file" 這個動作到底發生什麼事
03/06 18:06, 1F

03/06 18:09, , 2F
如果member function寫在class body裡, 等同於建議
03/06 18:09, 2F

03/06 18:09, , 3F
compiler把函式inline起來
03/06 18:09, 3F

03/06 18:23, , 4F
哪本書有教include發生了什麼事??感覺書好像都只寫怎麼用
03/06 18:23, 4F

03/06 18:31, , 5F
google找到的:http://0rz.tw/G3ldJ
03/06 18:31, 5F

03/06 19:32, , 6F
是因為篇幅不多吧...
03/06 19:32, 6F

03/07 00:36, , 7F
寫在.h = inline 這件事 我google不到耶 也都是看板上這樣說
03/07 00:36, 7F

03/07 00:36, , 8F
但是之前有找一下 好像沒找到
03/07 00:36, 8F

03/07 01:33, , 9F
應該是inline應該寫在.h檔裡面 才能在呼叫點把程式碼展開
03/07 01:33, 9F

03/07 02:23, , 10F

03/07 03:33, , 11F
沒啥好處吧!而且封裝性不佳
03/07 03:33, 11F

03/07 04:42, , 12F
include 單純就是你用複製貼上把檔案內容貼在那個位置上。
03/07 04:42, 12F

03/07 04:43, , 13F
除此之外沒有什麼其它的意義,會偷加的東西也不需要知道。
03/07 04:43, 13F

03/07 04:44, , 14F
method 定義在 class 裡面不管你寫哪都是 inline 的意思。
03/07 04:44, 14F

03/07 10:54, , 15F
.h opensource比較方便 直接寫在主程式沒人會用
03/07 10:54, 15F

03/07 21:13, , 16F
t大你說method寫哪都inline?是包含定義在.cpp也是??
03/07 21:13, 16F

03/07 21:40, , 17F
class body裡, 請看十樓 QQ
03/07 21:40, 17F

03/08 00:14, , 18F
inline你必須define在裡,但其他func要注意多重define
03/08 00:14, 18F
文章代碼(AID): #1BaYYzmi (C_and_CPP)