[問題] 請問一個coding原則

看板C_and_CPP作者 (Zoxge)時間13年前 (2012/04/07 14:13), 編輯推噓1(1013)
留言14則, 5人參與, 最新討論串1/1
通常一份規模不小的code都會用很多class與繼承,然後都會分很多.cpp與.h檔 若是class的member function,通常會把prototype寫在.h檔,然後定義寫在.cpp檔 小弟剛進公司沒有多久,看到有些不是屬於class的member function 他們就會宣告成static,然後也不把prototype寫在.h檔,而是直接和定義一起寫在.cpp檔 雖然會用但是不太了解原因。 請問這樣的做法有什麼特別考量嗎? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.10.132

04/07 14:15, , 1F
代表該函式不會被其他檔案使用
04/07 14:15, 1F

04/07 14:23, , 2F
請問是因為global的static function嗎?
04/07 14:23, 2F

04/07 14:33, , 3F
那如果有把prototype寫在.h檔,那其他檔案有include那個.h檔
04/07 14:33, 3F

04/07 14:34, , 4F
這樣其它檔案可以使用那個function嗎?
04/07 14:34, 4F

04/07 14:42, , 5F
static讓外部檔案無法link到該function..有點privarte感覺
04/07 14:42, 5F

04/07 14:43, , 6F
其他檔案是無法使用的,就算宣告了也找不到定義
04/07 14:43, 6F

04/07 14:54, , 7F
連原型都沒有寫在class裡的函數,首先就不會是其 member
04/07 14:54, 7F

04/07 14:59, , 8F
我以為他是說 「不屬於class的member的function」XD
04/07 14:59, 8F

04/07 15:06, , 9F
原 PO 下次講清楚,就簡單的寫 static function 就好了
04/07 15:06, 9F

04/07 15:07, , 10F
目的是 File Scope,在 C++ 流行用 namespace { } 取代它
04/07 15:07, 10F

04/07 15:10, , 11F
喔喔 好的 sorry 謝謝各位
04/07 15:10, 11F

04/07 15:11, , 12F
p大是說static function的做法已經被namespace寫法取代?
04/07 15:11, 12F

04/07 15:13, , 13F
印象中是因為static太多用途才有namespace{}的方式
04/07 15:13, 13F

04/07 16:05, , 14F
找工作的時候超容易遇到static問題
04/07 16:05, 14F
文章代碼(AID): #1FVzhm_2 (C_and_CPP)