作者BattleRoyale (翔焰)
看板EE_DSnP
标题[问题] 关於昨天上课的一问题
时间Thu May 29 21:05:51 2008
教授昨天举了以下的例子
"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
1F:推 ric2k1:除了 "void f(A*);" 不够正确之外, 其它没错. 05/29 21:35
2F:→ ric2k1:可以 google 一下如何从 C++ 呼叫 C 的 function 05/29 21:36
3F:→ BattleRoyale:是要再加一个extern 变成extern void f(A*);这样吧? 05/29 22:14
4F:推 ric2k1:你可以先这样试试看... 05/29 23:02