看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《suhorng ( )》之銘言: : 想請問如下的問題有沒有解法: : 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 : 請問有其他解決辦法嗎? 一般情況 直接在A 中include B C D include A 就好 現在原PO想要 只include A的時候 error 有AB的時候正常 或許可以考慮改CD的include的方式 在A中 include B 在B中 #ifndef FILE_B #define FILE_B #endif 在CD中 先include B #ifdef FILE_B include A #endif 如果這樣寫 當你CDE沒有先include B 的話 A也不會被include 應該就會造成error -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.142.236
rebaudiana:__FILE_B__ 05/25 23:45