[問題] 非執行階段的函數參考

看板C_and_CPP (C/C++)作者 (刃傷沙汰)時間12年前 (2013/12/28 11:24), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串1/1
各位先進好,小弟有關於C或C++的問題請教 現在我要寫一個 function ex.FC(); 裏頭的參數是一個值跟一個整數陣列 e.g.FC(int, int*) 這個陣列是來自於一個class的某一個成員組成的 e.g. A={a1,b1,c1} ,B={a2,b2,c2} 則 int[0]=a1, int[1]=a2; 但是 class 的內容(值)卻是在 main 執行時才決定 (並非程式初始化給定) 可 FC 這個函式卻需要用到整個class的資料 我想要達到以下兩點: 1. FC 作為獨立函式運作(不放在main裡) 2. 不傳入整個class 當參數 e.g. FC(int, classname*) 不知如何下手,請各位幫忙提供建議,謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.35.251

12/28 11:39, , 1F
FC要用整個class資料 又不想傳入整個class當參數 原因為何
12/28 11:39, 1F

12/28 12:23, , 2F
想要更直覺讓人了解函數只需要看甚麼 不希望傳入整個CLASS
12/28 12:23, 2F

12/28 13:01, , 3F
這樣是違反封裝原則的,代表使用者需要了解物件結構
12/28 13:01, 3F

12/28 13:02, , 4F
若改變物件實作方式,就要一併改變所有用到FC的地方
12/28 13:02, 4F

12/28 14:23, , 5F
舉個例子來說好了 假設class是書好了
12/28 14:23, 5F

12/28 14:24, , 6F
書的資料在使用者開始使用系統後才會產生 而之後使用者想要
12/28 14:24, 6F

12/28 14:26, , 7F
取書的時候 只要輸入書的ID就好 系統的FC()會自動匯入關於
12/28 14:26, 7F

12/28 14:26, , 8F
這本書的詳細資料
12/28 14:26, 8F

12/28 16:04, , 9F
FC要能使用class的"內部"資料要嘛FC是class的member func
12/28 16:04, 9F

12/28 16:06, , 10F
要嘛FC是該class的friend 我說的"內部"是private的意思
12/28 16:06, 10F

12/28 16:08, , 11F
不過開始用friend是程式架構有問題的警訊
12/28 16:08, 11F
文章代碼(AID): #1IlaHssk (C_and_CPP)
文章代碼(AID): #1IlaHssk (C_and_CPP)