Re: [問題] include funcitons and classes

看板C_and_CPP作者 (stu)時間11年前 (2013/04/12 14:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
: 兩個cpp也都inlcude test.h的情況下就不會有error : 這樣的話在link的時候,在兩個.o裡面應該也都有class的宣告跟定義。 : 請問為什麼不會有redefinition的問題呢? : 先謝謝各位不吝賜教的大大:) 關於你第一個用法 把函數的定義移動到某個c/cpp檔中就好 head只留函數宣告 一般習慣上這個c/cpp會和head檔名對應起來 compile的時候會把c/cpp都變成.o檔 .o裡面主要都是該檔案內的程式呼叫或是變數使用 但是使用到其他檔案的函數或是變數時 因為這個時候還不知道位置 只能先紀錄有哪些名稱,然後等待linker去找到補上 link時則是在找函數編譯過後的實體 讓呼叫函數的地方可以知道要跳到哪裡去 你可以想像是在找一段可以執行的程式 extern變數也是類似的機制 這個時候才找出這些跨檔案的名稱在何位置 而class宣告 只是定義一個資料體的格式 所以主要是compile時使用 link會去找函數、成員函數、標籤、extern變數等等東西 但不是找資料格式 .o檔裡面可能有使用到的物件 或是有函數的可執行機器碼 但是應該沒有物件宣告與定義 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.62 ※ 編輯: iamstudent 來自: 140.113.210.62 (04/12 14:23)
文章代碼(AID): #1HPwQcrt (C_and_CPP)
文章代碼(AID): #1HPwQcrt (C_and_CPP)