2012-01-16 9 views
3

iPhoneアプリケーション用のObjective-CコードでいくつかのC++クラスを使用しようとしています。私はC++オブジェクトを宣言しようとしていますが、問題にぶつかっています。 Objective-CクラスのC++ヘッダーファイルを宣言していますが、Objective-Cクラスを使用したい場合、Objective-CがC++オブジェクトを認識しているようには見えません。ここに私のObjective-Cのコードです:Objective-CでC++クラスを使用する

//implementation file 
#import "CPPClass.h" 

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

が、私は警告「『CPPClass』宣言されていない識別子の使用」を取得します。

どうすればいいですか?

+3

.mファイルを.mmファイルに変更しましたか? –

+0

そして、技術的には#includeと#import間の動作の違いに実際に頼っているかもしれないので、C/C++ヘッダファイルを#includeするべきです。あなたがここで何の違いもないことは確かに確信できますが、これは答えとして決して意図されていません。 – Tommy

+0

@Tommyそうでない場合は、説明を明確にするために、この質問[here](http://stackoverflow.com/questions/439662)を参照してください。 #importを使用すると、パフォーマンスは向上しますが、欠点はありません。 –

答えて

4

Objective-CでC++コードを使用する場合は、コンパイラがObjective-C++コードとして解釈する拡張子が.mmのファイルにする必要があります。また、#include C++ヘッダでなければなりません。#importではありません。

+4

'#include'と'#import'は本当に何も意味しません。あなたはどちらかを行うことができます。 '#import'はすでにファイルを含めていないかどうかを確認するだけです –

+0

そして.mmに変更するのではなく、ファイル属性にObjective-C++ファイルタイプを設定することができます。 –

関連する問題