2012-01-09 63 views
3

在我的Objective-C類的頭文件中,我使用@class MyClassName以便能夠在定義的類中使用MyClassName對象。什麼是Objective C「@class MyClassName」的C++等價物?

在Objective-C中,@class MyClassName#import MyClassName.h之間有區別嗎?

C++中存在這種差異嗎?

C++等效的#import "MyClassName.h"#include "MyClassName.h"

什麼是C++等效的Objective-C @class MyClassName?在C

回答

8

向前聲明++類似於 - 剛剛從OBJ-C變種刪除 '@':

class MyClassName; 
1

是的,有這樣的區別在C++了。在C++中,它被稱爲前向聲明。你向前聲明一個類,如:

class ClassName; 

只需添加額外的信息,向前聲明是當你使用一個類被聲明之前使用。編譯器會稍微寬鬆一些,不會拋出錯誤,但它仍然需要稍後完整的類聲明。

1

的C++相當於#import "MyClassName.h「不是#include "MyClassName.h"

」#進口「,也防止c,對於它的文件的循環列入++,我們通常做

#ifdef __abc.h__ 
#define __abc.h__ 

//actual code 


#endif 
相關問題