[問題] 同class可以寫在不同的header跟source嗎

看板C_and_CPP (C/C++)作者 (幻)時間16年前 (2009/10/27 19:30), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/2 (看更多)
我原有一個資料庫的處理程式碼 比如說 Db.h 跟 Db.cpp 裡面(只)有一個class 比如說叫 CDb 好了 這個class內有資料庫的建立/開啟/刪除 以及5個資料表的新增/刪除/修改 如果我覺得這個class太長 想依照資料表分成不同檔案 請問可行嗎? .cpp 應該是ok的 直接在 Db.cpp include就好 反正都是 CDb::FunctionName() 那header的部分要怎麼辦? 都寫 class CDb(){ .. } 一定不行 有什麼建議的方法嗎? 感謝~~! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.65.157

10/27 20:17, , 1F
分成不同class 用繼承?
10/27 20:17, 1F

10/27 20:33, , 2F
嗯有想過class CDb繼承5個table的class
10/27 20:33, 2F

10/27 20:33, , 3F
只是不知道這樣會不會影響效能
10/27 20:33, 3F

10/27 22:13, , 4F
應該不會, 除非你有 virtual function, 不然不會
10/27 22:13, 4F

10/27 22:14, , 5F
其實我覺得, .cpp可以分開實作, 但.h的宣告仍然通通包在
10/27 22:14, 5F

10/27 22:14, , 6F
一起就可以了吧?_?
10/27 22:14, 6F

10/27 22:29, , 7F
話說 你可以在 class XXX { } <= 裡面 include "xxx.inl"
10/27 22:29, 7F

10/27 22:29, , 8F
也就是說你可以把五個表的函式寫在 5 個 xxx.inl files 裡
10/27 22:29, 8F

10/27 22:30, , 9F
然後在你的 class CDb { } <= 裡面寫 #include 它們就行了
10/27 22:30, 9F

10/27 22:30, , 10F
不過這樣很鳥 XDXD 看的人也痛苦
10/27 22:30, 10F

10/27 22:31, , 11F
不見得要.inl,附檔名.h也行,只是以前看到的做法是用.inl
10/27 22:31, 11F
文章代碼(AID): #1AvjdWwW (C_and_CPP)
文章代碼(AID): #1AvjdWwW (C_and_CPP)