2012-01-16 33 views
3

我想在iPhone應用程序的Objective-C代碼中使用一些C++類。我只是想聲明C++對象,而且我遇到了問題。儘管我在Objective-C類中聲明瞭C++頭文件,但是我希望將它用於其中,但似乎沒有發現我的Objective-C可識別C++對象。這是我的Objective-C代碼:在Objective-C中使用C++類C

//implementation file 
#import "CPPClass.h" 

@implementation MyViewController 
- (void) viewDidLoad 
{ 
    CPPClass object; 
} 

但我得到了「使用未聲明的標識符」CPPClass'「警告。

我該怎麼做?

+3

您是否將.m文件更改爲.mm文件? – 2012-01-16 20:13:22

+0

而且,從技術上講,你應該#include C/C++頭文件,因爲有些實際上可能依賴#include和#import之間的行爲差​​異。雖然你可以肯定這在這裏沒有什麼區別,所以這絕不是一個答案。 – Tommy 2012-01-16 20:16:04

+0

@Tommy不是這種情況,請查看此問題[here](http://stackoverflow.com/questions/439662)以獲得澄清。使用#import可以提高性能,沒有缺點。 – 2012-01-16 20:20:33

回答

4

如果您想在Objective-C中使用C++代碼,您需要將其放入擴展名爲.mm的文件中,編譯器將其解釋爲Objective-C++代碼。你也應該#include C++頭,而不是#import他們。

+4

'#include' vs'#import'的意思是什麼都沒有。你也可以做。 '#import'只檢查是否已經包含該文件 – 2012-01-16 20:16:27

+0

而不是更改爲.mm,您可以在文件屬性中設置Objective-C++文件類型。 – 2012-01-16 20:32:17