我有一个iPhone项目,在此我想使用c ++文件。我创建了如下的c ++文件:
文件 - >新文件 - > C / C ++文件 - > C ++文件 并将其命名为 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++
但它出现以下错误:
答案 0 :(得分:3)
您需要将C ++部分拆分为头文件和cpp
文件,否则ClassA::add
将被定义两次。
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 ...