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 并添加了两个链接器标志

-cclib -lstdc++

但它给出了以下错误:

在此处输入图像描述

4

1 回答 1

3

您需要将 C++ 部分拆分为头文件和cpp文件,否则ClassA::add将被定义两次。

类A.h:

#include <iostream>

class ClassA
{
  public:
    int a, b;

    void add();

};

A类.cpp:

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

//    printf("sdf");


}

您的 .mm 文件:

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