繁体   English   中英

Objective-C - 为C ++函数创建包装器文件?

[英]Objective-C - Creating a wrapper file for C++ functions?

我将为Objective-C代码编写很多C ++函数(由于第三方函数)。 我认为通过在Objective-C代码和C ++代码之间使用中间Objective-C ++文件包装来抽象出C ++代码可能是个好主意。 我目前的布局是ViewController.m文件创建了我的包装器Objective-C ++类的实例。 这个类调用它的实例方法,后者又调用C ++代码。 下面给出了一个简单的版本。 这是一个不好的方法吗? 有没有更合适的方法来解决这个问题? 对代码有任何其他批评吗? 非常感谢!

ViewController.m

#import "ViewController.h"
#import "CppWrapper.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    CppWrapper *wrap = [[CppWrapper alloc] init];
    double n = 5;
    n = [wrap cppTimesTwo:n];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

CppWrapper.mm

#import "CppWrapper.h"
#import "Cpp.h"

@implementation CppWrapper

- (double)cppTimesTwo:(double) number
{
    return timesTwo(number);
}

@end

Cpp.cpp

#include "Cpp.h"

double timesTwo(double number)
{
    return 2 * number;
}

我们在一个项目中做了同样的事情来重用一些C源代码并且它工作得非常好。 我认为这是一个很好的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM