[問題] 引入標頭檔多次(在不同namespace)
想請問如下的問題有沒有解法:
B 檔案是函式庫
A 檔案是另一函式庫,會引入 B 檔案 A <===include=== B
| \____________ |
v > v
C D
有的 client 會引入 A, 也需要用 B (並引入 B), 有的只要用 A, 不要用 B
為了讓 dependency 明顯一點, 我希望一個要用到 A & B 的 client 必須
同時 include A 跟 B, 只 include A 會 compile error
(這樣做是, 例如將來我把某些 B 的功能移到另外的 Z 去時, 能明白知道哪些檔案該改)
原先的想法是在 A 中我寫成
namespace private_A {
#include "B"
};
不幸的是因為 include guards, 我無法再引入 B
請問有其他解決辦法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.46.41
→
05/25 00:55, , 1F
05/25 00:55, 1F
→
05/25 01:01, , 2F
05/25 01:01, 2F
推
05/25 01:34, , 3F
05/25 01:34, 3F
→
05/25 01:35, , 4F
05/25 01:35, 4F
原來還會造成 link error! 那請問這是有不直接引入, 其他選擇的意思嗎~?
※ 編輯: suhorng 來自: 118.166.46.41 (05/25 01:41)
→
05/25 01:48, , 5F
05/25 01:48, 5F
→
05/25 02:43, , 6F
05/25 02:43, 6F
→
05/25 02:46, , 7F
05/25 02:46, 7F
是 A 的某些宣告要用到 B 的東西
(有的用到的是在 private 裡面, 基本上與引入 A 的檔案無關, 也不保證未來會繼續有)
→
05/25 03:39, , 8F
05/25 03:39, 8F
→
05/25 03:40, , 9F
05/25 03:40, 9F
只是舉個例 也有可能是把 A 切開 (而不是把 B 切開)
規劃的確是個問題... 我還在學 所以慢慢 refactor, 一開始就要規劃好有點難...
※ 編輯: suhorng 來自: 118.166.46.41 (05/25 11:07)
推
05/25 15:18, , 10F
05/25 15:18, 10F
→
05/25 15:19, , 11F
05/25 15:19, 11F
→
05/25 15:20, , 12F
05/25 15:20, 12F
推
05/26 01:59, , 13F
05/26 01:59, 13F
請問是這一本嗎?
http://www.books.com.tw/exep/prod/booksfile.php?item=0010531033
這好像是翻譯書, 請問品質如何呢?
※ 編輯: suhorng 來自: 118.166.50.221 (05/27 23:32)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章