看板 EE_DSnP 關於我們 聯絡資訊
教授昨天舉了以下的例子 "a.h" class A { }; "a.cpp" void f(A* ){ } 此時我若想在"c.cpp"中的函式用a (a是指向A的pointer) 原本是這樣: void g(){ f(a) } 在不include a.h的狀況之下 需變成這樣: class A; void f(A*); extern A* a; void g(){ f(a) } 希望我上課的筆記沒寫錯 有錯請幫忙更正一下 謝謝 覺得吊詭的是 如果這是在c和cpp互call的話 c中又看不懂class 所以教授的意思是說要.cpp中 struct A ; void f(A*); extern A*a; 這樣的意思嗎? -- 感覺應該是這樣 但不敢確定所以po上來問一下orz -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.235
ric2k1:除了 "void f(A*);" 不夠正確之外, 其它沒錯. 05/29 21:35
ric2k1:可以 google 一下如何從 C++ 呼叫 C 的 function 05/29 21:36
BattleRoyale:是要再加一個extern 變成extern void f(A*);這樣吧? 05/29 22:14
ric2k1:你可以先這樣試試看... 05/29 23:02