1

私はiPhoneプロジェクトを持っています.これで私はc ++ファイルを使いたいと思っていました. 以下のようなc++ファイルを作成しました。

File->New File->C/C++ files->C++ Fileを開き、 ClassA.cpp という名前を付けました。

ClassA.cpp 内

#include <iostream>

class ClassA
{
  public:
    int a, b;

    void add();

};

void ClassA::add()
{

//    printf("sdf");
}

私のviewController.mmファイルで:

#import "ViewController.h"
#import "ClassA.cpp"
- (void)viewDidLoad
{
    ClassA a;
    a.add();



    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

.m から .mm に名前を変更するようにと書いてある投稿を読んだので、すべての .m ファイルの名前を .mm に変更し、2 つのリンカー フラグを追加しました

-cclib -lstdc++

しかし、次のエラーが発生します。

ここに画像の説明を入力

4

1 に答える 1

3

C++ 部分をヘッダー ファイルとファイルに分割する必要がありcppます。そうしないと、ClassA::addが 2 回定義されます。

ClassA.h:

#include <iostream>

class ClassA
{
  public:
    int a, b;

    void add();

};

ClassA.cpp:

#include "ClassA.h"
void ClassA::add()
{

//    printf("sdf");


}

あなたの .mm ファイル:

#import "ClassA.h"
... the rest of the file ...
于 2012-09-12T13:19:37.580 に答える